[PYTHON] 줄 바꿈으로 구분 된 파일을 읽고 줄 바꿈을 삭제하는 가장 좋은 방법은 무엇입니까?
PYTHON줄 바꿈으로 구분 된 파일을 읽고 줄 바꿈을 삭제하는 가장 좋은 방법은 무엇입니까?
파이썬에서 줄 바꿈 된 파일을 읽을 때 줄 바꿈을 제거하는 가장 좋은 방법을 결정하려고합니다.
필자가 알아 낸 점은 테스트 할 코드를 포함하는 다음 코드입니다.
import os
def getfile(filename,results):
f = open(filename)
filecontents = f.readlines()
for line in filecontents:
foo = line.strip('\n')
results.append(foo)
return results
blahblah = []
getfile('/tmp/foo',blahblah)
for x in blahblah:
print x
제안?
해결법
-
==============================
1.
lines = open(filename).read().splitlines()
-
==============================
2.여기 당신이 요청한 것을하는 발전기가 있습니다. 이 경우 rstrip을 사용하면 스트립보다 빠르고 약간 빠릅니다.
여기 당신이 요청한 것을하는 발전기가 있습니다. 이 경우 rstrip을 사용하면 스트립보다 빠르고 약간 빠릅니다.
lines = (line.rstrip('\n') for line in open(filename))
그러나 이것을 사용하여 후행 공백을 없앨 수 있습니다.
lines = (line.rstrip() for line in open(filename))
-
==============================
3.이 접근법에 대해 어떻게 생각하십니까?
이 접근법에 대해 어떻게 생각하십니까?
with open(filename) as data: datalines = (line.rstrip('\r\n') for line in data) for line in datalines: ...do something awesome...
생성자 표현식은 전체 파일을 메모리에로드하지 않고 파일을 닫는 것을 보장합니다.
-
==============================
4.
for line in file('/tmp/foo'): print line.strip('\n')
-
==============================
5.그냥 생성기 표현식을 사용하십시오.
그냥 생성기 표현식을 사용하십시오.
blahblah = (l.rstrip() for l in open(filename)) for x in blahblah: print x
또한 메모리에있는 전체 파일을 읽는 것에 대해 조언하고 싶습니다. 대형 데이터 세트에서 생성기를 루핑하는 것이 훨씬 효율적입니다.
-
==============================
6.나는 이것을 사용한다.
나는 이것을 사용한다.
def cleaned( aFile ): for line in aFile: yield line.strip()
그런 다음이 일을 할 수 있습니다.
lines = list( cleaned( open("file","r") ) )
또는 여분의 함수를 사용하여 정리를 확장 할 수 있습니다 (예 : 빈 줄 삭제 또는 주석 줄 건너 뛰기 등).
-
==============================
7.나는 이렇게 할거야.
나는 이렇게 할거야.
f = open('test.txt') l = [l for l in f.readlines() if l.strip()] f.close() print l
from https://stackoverflow.com/questions/544921/best-method-for-reading-newline-delimited-files-and-discarding-the-newlines by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 판다에 ELIF로 열 만들기 (0) | 2018.11.12 |
---|---|
[PYTHON] OSError : [Errno 8] Exec 형식 오류 (0) | 2018.11.12 |
[PYTHON] Matplotlib : "scatter / dot / beeswarm"플롯에서 중첩되는 데이터 포인트 피하기 (0) | 2018.11.12 |
[PYTHON] "파이썬에 사전 추가하기" [복제] (0) | 2018.11.12 |
[PYTHON] numpy 배열의 모든 n 요소를 평균 (0) | 2018.11.12 |