2013-02-09 3 views
0

파이썬에서 텍스트 파일의 숫자를 합하는 방법은 무엇입니까?파이썬 : 텍스트 파일에서 숫자를 합치는 법

320 
5203 
5246 

그리고 우리는 파이썬 해당 파일을 열고 결과를 얻기 위해 그 숫자의 합계를 원하는 : :이 방법을 수행해야 10769. 우리가 이런 식으로 번호가 텍스트 문서를 가지고의 말을하자? 파일이 너무 커서없는 경우

+0

파일의 크기는 어느 정도입니까? 파일의 다른 텍스트? – dawg

답변

2

, 당신은 단지 정수의 목록에 선을 변환하는 지능형리스트를 사용하여 배열로 파일을 읽은 다음 그 합을 계산할 수 있습니다 :

sum([int(s.strip()) for s in open('foo.txt').readlines()]) 

을 그러나이 전체 파일을 메모리로 읽습니다. 파일이 큰 경우는 아마 적은 필수적 방식으로 합을 축적 집중적 인 메모리 같습니다

result = 0 
for s in open('foo.txt'): result += int(s.strip()) 

또는 목록이 필요하지 않도록 발전기 표현식으로

가 인 메모리 저장 될

sum(int(s.strip()) for s in open('foo.txt')) 
+5

흥미롭게도, 메모리 사용에 대한 여러분의 걱정은 첫 번째 제안을 단순화함으로써 해결할 수 있습니다 :'sum (int (s) in open ('foo.txt'))'. int는 당신을위한 후행 공간을 무시하고, 열린 파일은 직접 반복 가능하며,리스트 이해력 대신에 생성자 표현식을 사용하면 다른리스트를 피할 수 있습니다. –

+0

너는 나를 구해 준다 –

+0

@NedBatchelder : 아, 알아두면 좋다! 귀하의 의견을 받아 들일 수 있도록 별도의 답변으로 작성해야합니다. 그것은 분명히 제 것보다 낫습니다. 나는이 문제가 종결되었으므로 문제가되지 않는다고 생각한다. –

관련 문제