2014-11-11 18 views
-2
나는 파일의 정보를 가지고 2 차원 목록으로 바꿀려고

, 내 텍스트 파일은이 있습니다파일을 2D 목록으로 가져 오는 동안 쉼표를 제외하는 방법은 무엇입니까?

000001,375.99 
000002,212.89 
000003,175.12 
000002,543.23 
000003,1000.01 
000001,10.0 
000002,23.56 
000003,5.65 
000009,2.79 
000009,1.79 
000009,0.79 
000008,3.79 
000008,10.0 
000008,11.1 

하지만 오류 얻을 파일을 읽을 수 있습니다 내 코드 :

ValueError: could not convert string to float: '000001,375.99' 

코드를 읽을 때 쉼표를 어떻게 제외합니까?

def loadExpensesData(): 
    exp = open('expense.dat','r') 
    data = [] 
    for line in exp: 
     num_strings = line.split() 
     num = [float(n) for n in num_strings] 
     data.append(numbers) 
    exp.close() 
    print(data) 

loadExpensesData() 
+4

쉼표로 구분 된 데이터가있는 경우 [csv' 라이브러리] (https://docs.python.org/2/library/csv.html)를 사용하지 않는 이유는 무엇입니까? 또는, 최소한의 수정,'line.split (',')'(존재하지 않는) 공백 대신 쉼표로 분리하십시오. – jonrsharpe

+0

[쉼표로 구분 된 단어 단위로 텍스트 파일을 읽는 중] 가능한 중복 (http://stackoverflow.com/questions/20867027/reading-text-file-word-by-word-separated-by-comma) –

답변

1

이런 식으로 뭔가를 수행합니다 :

이 내 코드입니다 -

변화 당신의 라인

num_strings = line.split() 
num = [float(n) for n in num_strings] 

: -

num = [float(n) for n in line.split(',')] 

전체 코드 : -

def loadExpensesData(): 
    exp = open('new.txt','r') 
    data = [] 
    for line in exp: 
     data.append(map(float, line.split(','))) 
    exp.close() 
    print(data) 

loadExpensesData() 
+0

감사! 문제를 해결했습니다! – Pottsy

+0

@Pottsy 올바른 답변과 도움을 얻으려면 Mark Correct를 기쁘게하십시오. –

관련 문제