반응형
Python에서
temp = open(filename,'r').readlines()
각 요소가 파일의 한 줄인 목록이 생성됩니다. 약간 어리석지 만 여전히 : readlines ()
는 각 요소에 개행 문자를 씁니다. 제가 원하지 않는 일입니다.
어떻게 피할 수 있습니까?
해결 방법
temp = file.read().splitlines()
또는 손으로 줄 바꿈을 제거 할 수 있습니다.
temp = [line[:-1] for line in file]
참고 : 이 마지막 솔루션은 파일이 줄 바꿈으로 끝나는 경우에만 작동하며 그렇지 않으면 마지막 줄에서 문자가 손실됩니다.
이 가정은 대부분의 경우에 해당됩니다 (특히 텍스트 편집기로 생성 된 파일의 경우, 어쨌든 종료 줄 바꿈을 추가하는 경우가 있습니다 ).
이것을 피하려면 파일 끝에 개행을 추가 할 수 있습니다.
with open(the_file, 'r+') as f:
f.seek(-1, 2) # go at the end of the file
if f.read(1) != '\n':
# add missing newline if not already present
f.write('\n')
f.flush()
f.seek(0)
lines = [line[:-1] for line in f]
또는 더 간단한 대안은 개행을 대신 스트립
하는 것입니다.
[line.rstrip('\n') for line in file]
또는 읽기는 어렵지만 :
[line[:-(line[-1] == '\n') or len(line)+1] for line in file]
or
의 반환 값이 부울이 아니라 참 또는 거짓으로 평가 된 객체라는 사실을 이용합니다.
readlines
메소드는 실제로 다음과 같습니다.
def readlines(self):
lines = []
for line in iter(self.readline, ''):
lines.append(line)
return lines
# or equivalently
def readlines(self):
lines = []
while True:
line = self.readline()
if not line:
break
lines.append(line)
return lines
readline ()
은 개행을 유지하므로 readline ()
도 개행을 유지합니다.
참조 페이지 https://stackoverflow.com/questions/12330522
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python : 튜플 인덱스는 mysql 테이블에서 선택할 때 str이 아닌 정수 여야합니다. (0) | 2021.02.07 |
---|---|
파이썬 자식 요소 텍스트를 포함하지 않고 Selenium WebDriver에서 요소의 텍스트를 얻는 방법은 무엇입니까? (0) | 2021.02.07 |
파이썬 코드 내에 파이썬 모듈 설치 (0) | 2021.02.06 |
파이썬 Python에 Multiline Lambda가 없음 : 왜 안됩니까? (0) | 2021.02.06 |
파이썬 세미콜론은 무엇을합니까? (0) | 2021.02.06 |
댓글