반응형
줄 바꿈으로 구분 된 파일을 읽고 줄 바꿈을 버리는 가장 좋은 방법은 무엇입니까?
파이썬에서 줄 바꿈으로 구분 된 파일을 읽을 때 줄 바꿈 제거를 처리하는 가장 좋은 방법을 결정하려고합니다.
내가 생각 해낸 것은 테스트 할 일회용 코드를 포함하는 다음 코드입니다.
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
제안?
lines = open(filename).read().splitlines()
요청한 것을 수행하는 생성기가 있습니다. 이 경우 rstrip을 사용하는 것으로 충분하고 strip보다 약간 빠릅니다.
lines = (line.rstrip('\n') for line in open(filename))
그러나 후행 공백도 제거하기 위해 이것을 사용하고 싶을 것입니다.
lines = (line.rstrip() for line in open(filename))
이 접근 방식에 대해 어떻게 생각하십니까?
with open(filename) as data:
datalines = (line.rstrip('\r\n') for line in data)
for line in datalines:
...do something awesome...
생성기 표현식은 전체 파일을 메모리로로드하지 with
않고 파일을 닫습니다.
for line in file('/tmp/foo'):
print line.strip('\n')
생성기 표현식을 사용하십시오.
blahblah = (l.rstrip() for l in open(filename))
for x in blahblah:
print x
또한 메모리에서 전체 파일을 읽지 않도록 조언하고 싶습니다. 생성기를 반복하는 것은 큰 데이터 세트에서 훨씬 더 효율적입니다.
나는 이것을 사용한다
def cleaned( aFile ):
for line in aFile:
yield line.strip()
그러면 이런 일을 할 수 있습니다.
lines = list( cleaned( open("file","r") ) )
또는 추가 기능으로 clean을 확장하여 빈 줄을 삭제하거나 주석 줄을 건너 뛸 수 있습니다.
나는 다음과 같이 할 것입니다.
f = open('test.txt')
l = [l for l in f.readlines() if l.strip()]
f.close()
print l
반응형
'developer tip' 카테고리의 다른 글
Google Maps API의 "내 위치"버튼 위치 변경 (0) | 2020.09.23 |
---|---|
C #을 포함한 문자열에서 HTML 태그 제거 (0) | 2020.09.23 |
Backbone.js에서보기 삭제 또는 제거 (0) | 2020.09.23 |
ON 조건없이 mysql JOIN을 사용하는 방법은 무엇입니까? (0) | 2020.09.22 |
Java Eclipse : JAR로 내보내기와 실행 가능한 JAR로 내보내기의 차이점 (0) | 2020.09.22 |