파이썬에서 줄 바꿈없이 파일 읽기
파이썬에서 호출
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
부울이 아니라 참 또는 거짓으로 평가 된 객체라는 사실을 악용합니다 .
이 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')
temp = open(filename,'r').read().splitlines()
또 다른 예:
한 번에 한 행씩 파일을 읽습니다. 문자열 끝에서 원하지 않는 문자 제거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 = [line.strip() for line in file.readlines()]
이 시도:
u=open("url.txt","r")
url=u.read().replace('\n','')
print(url)
import csv
with open(filename) as f:
csvreader = csv.reader(f)
for line in csvreader:
print(line[0])
앞뒤 공백을 모두 제거하려면 ( Абага의 답변 에서 영감을 받음 )-
temp = [line.strip() for line in open("filename")]
줄 바꿈을 포함하여 모든 후행 공백을 제거하려면-
temp = [line.rstrip() for line in open("filename")]
공백이 아닌 후행 줄 바꿈 문자를 제거하려는 경우-
temp = [line.rstrip('\r\n') for line in open("filename")]
추신 : 도움이 되셨다면 그를 찬양하십시오.
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()
def getText():
file=open("ex1.txt","r");
names=file.read().split("\n");
for x,word in enumerate(names):
if(len(word)>=20):
return 0;
print "length of ",word,"is over 20"
break;
if(x==20):
return 0;
break;
else:
return names;
def show(names):
for word in names:
len_set=len(set(word))
print word," ",len_set
for i in range(1):
names=getText();
if(names!=0):
show(names);
else:
break;
참고 URL : https://stackoverflow.com/questions/12330522/reading-file-without-newlines-in-python
'Programing' 카테고리의 다른 글
활동적인 자식의 부모를위한 복잡한 CSS 선택기 (0) | 2020.03.12 |
---|---|
HTML5 캔버스에서 이미지 크기 조정 (0) | 2020.03.12 |
IDENTITY_INSERT가 OFF로 설정된 경우 'table'테이블에서 ID 열에 명시 적 값을 삽입 할 수 없습니다. (0) | 2020.03.12 |
리플렉션을 사용하여 개인 메서드를 호출하려면 어떻게합니까? (0) | 2020.03.12 |
enumerate ()는 무엇을 의미합니까? (0) | 2020.03.12 |