파이썬에서 호출
temp = open(filename,'r').readlines()
각 요소가 파일의 한 줄인 목록이됩니다. 그것은 약간 어리석지 만 여전히 readlines()
개별 요소에 개행 문자를 씁니다.
어떻게 피할 수 있습니까?
답변
다음을 사용하여 전체 파일과 분할 선을 읽을 수 있습니다 str.splitlines
.
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]
또는 더 간단한 대안은 strip
줄 바꿈 대신입니다.
[line.rstrip('\n') for line in file]
심지어 읽을 수는 없지만 :
[line[:-(line[-1] == '\n') or len(line)+1] for line in file]
의 반환 값이 or
부울이 아니라 true 또는 false로 평가 된 객체라는 사실을 악용합니다 .
이 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()
개행을 readlines()
유지하기 때문에 개행도 유지합니다.
참고 : 메소드의 대칭성을 readlines()
위해 줄 바꿈을 추가 writelines()
하지 않으므로 in f2.writelines(f.readlines())
의 정확한 사본을 생성합니다 .f
f2
답변
temp = open(filename,'r').read().split('\n')
답변
또 다른 예:
한 번에 한 행씩 파일을 읽습니다. 문자열 끝에서 원하지 않는 문자 제거str.rstrip(chars)
with open(filename, 'r') as fileobj:
for row in fileobj:
print( row.rstrip('\n') )
또한 참조 str.strip([chars])
및str.lstrip([chars])
(파이썬> = 2.0)
답변
temp = open(filename,'r').read().splitlines()
답변
이것이 최선의 선택이라고 생각합니다.
temp = [line.strip() for line in file.readlines()]
답변
이 시도:
u=open("url.txt","r")
url=u.read().replace('\n','')
print(url)
답변
my_file = open("first_file.txt", "r")
for line in my_file.readlines():
if line[-1:] == "\n":
print(line[:-1])
else:
print(line)
my_file.close()