2017-11-21 14 views
0
def get_info(file_object): 
    file_data = [] 
    opened_file = open(file_object, "r") 
    for line in opened_file: 
     line = line.split(",") 
     file_data.append(line) 
    opened_file.close() 
    return file_data 

def get_avg_mag(file_data): 
    sum = 0 
    for line in file_data: 
     mag = line[4] 
     mag = float(mag) 
     sum += mag 
    print(sum/len(file_data)) 

, 나는은 위의 코드를 실행하면

"ValueError: could not convert string to float:"

말하는 오류 메시지가 float로 목록에서 문자열 오브젝트를 변환하고 그 이유를

답변

0

당신은 점점이 모르는 오류는 파일에서 행을 읽을 때 끝에는 모든 행과 함께 줄 문자가 추가되기 때문입니다. 그래서 마지막 요소는 십진수와 함께 \ n을 포함하므로 ValueError : 문자열을 float로 변환 할 수 없습니다.

아래 줄 line.rstrip =()에 추가하여 새로운 라인을 스트라이핑 시도 -

for line in opened_file: 
    line = line.rstrip() 
    line = line.split(',') 
    file_data.append(line)