2013-03-15 6 views
0

코드에 오류가 계속 발생합니다. 오류 수정을 시도했지만 여전히 작동하지 않습니다. 나는 그 질문을 다시 설명하려고 노력할 것이다. 파일을 열고 읽는 코드가 있습니다.코드에 오류가 계속 발생합니다.

데이터가 엑셀 파일에 있습니다.

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

첫 줄을 건너 뛰시겠습니까? – xbb

답변

5

CSV 파일이있는 경우 올바른 도구를 사용하여 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) 
관련 문제