2013-03-15 3 views
0

Код продолжает появляться с ошибкой. Я попытался исправить ошибки, но они все еще не работают. Я попробую снова объяснить этот вопрос. У меня есть код, чтобы открыть файл и прочитать его.Код продолжает поступать с ошибкой

Данные находятся в файле excel.

amount (A1) 
5.21 (A2) 
4.63 (A3) 
5.24 (A4) 
3.62 (A5) 
1.98 (A6) 
16.47 (A7) 
1.31 (A8) 
1.85 (A9) 
4.26 (A10) 
0.98 (A11) 
1.84 (A12) 
0.51 (A13) 
15.58 (A14) 
2.64 (A15) 
4.32 (A16) 
0.59 (A17) 
0.21 (A18) 
5.41 (A19) 
0.08 (A20) 
4.34 (A21) 

Я пытался делать

file=open ('3109336a.csv','r') 

count = 0 

with open('3109336a.csv', 'r') as f: 
    values = f.readlines() 

    for value in values: 
    if float(value) >= 9.79: 
     count += 1 

print (count) 

Ошибки я получаю это:

Traceback (most recent call last): 
    File "C:\Users\XXXX\Desktop\XXXXX\XXXX\studfiles\XXXXX\testing.py", line 9, in <module> 
    if float(value) >= 9.79: 
ValueError: could not convert string to float: 'amount, code, quant, val, number, tree\n' 

Возникает вопрос:

Подсчитать количество значений в поле [сумма] более чем (или равным) (9.79)

+0

О привет, это ты снова, не так ли? По крайней мере, на этот раз у вас есть код. :-) –

+0

Извините, что раньше я был в спешке. – user2173700

+2

skip первая линия? – xbb

ответ

5

Если у вас есть файл CSV, используйте его, чтобы прочитать его. Используйте csv module:

import csv 

with open('3109336a.csv', 'r', newline='') as f: 
    reader = csv.reader(f) 
    next(reader) # skip the first row, it only contains headers. 
    count = 0 
    for row in reader: 
     # row is now a *list* of columns. 
     # I'll assume the *first* column is your value: 
     amount = float(row[0]) 
     if amount >= 9.79: 
      count += 1 

    print(count) 

Это может быть упрощено до:

with open('3109336a.csv', 'r', newline='') as f: 
    reader = csv.reader(f) 
    next(reader) # skip the first row, it only contains headers. 
    count = sum(1 for row in reader if float(row[0]) >= 9.79) 

print(count) 
Смежные вопросы