.readlines() 사용 시 \n 삭제
값이 포함된 .txt 파일이 있습니다.
값은 다음과 같습니다.
Value1
Value2
Value3
Value4
제 목표는 그 값을 리스트에 넣는 것입니다.이렇게 하면 목록은 다음과 같습니다.
['Value1\n', 'Value2\n', ...]
그\n
는 불필요합니다.
코드는 다음과 같습니다.
t = open('filename.txt')
contents = t.readlines()
이 조작은 원하는 것을 실행할 수 있습니다(목록의 파일 내용, 행별, \n 없음).
with open(filename) as f:
mylist = f.read().splitlines()
난 이렇게 할 거야:
alist = [line.rstrip() for line in open('filename.txt')]
또는 다음과 같이 입력합니다.
with open('filename.txt') as f:
alist = [line.rstrip() for line in f]
를 사용하여 문자열 끝에서 줄바꿈만 삭제할 수 있습니다.
for i in contents:
alist.append(i.rstrip('\n'))
그러면 다른 모든 공백은 그대로 유지됩니다.행의 시작과 끝의 공백에 신경을 쓰지 않는다면, 큰 해머는 라고 불립니다.
단, 파일에서 읽고 모든 것을 메모리로 가져오므로 메서드를 사용하는 것이 좋습니다.이것에 의해, 행 구분 기호로 1 개의 문자열이 분할되어 그러한 구분 기호 없이 행의 리스트가 반환됩니다.이것에 의해, 다음의 순서로 사용합니다.file.read()
결과 및 사용 안 함file.readlines()
전혀:
alist = t.read().splitlines()
파일을 연 후 목록 이해는 이를 한 줄로 수행할 수 있습니다.
fh=open('filename')
newlist = [line.rstrip() for line in fh.readlines()]
fh.close()
나중에 파일을 닫는 것만 잊지 마세요.
스플릿 라인이 4 gb 파일에 메모리 에러를 일으키고 있기 때문에 줄 바꿈 기능을 사용하여 줄 바꿈 문자를 제거했습니다.
샘플 코드:
with open('C:\\aapl.csv','r') as apple:
for apps in apple.readlines():
print(apps.strip())
목록의 각 문자열에 대해.strip()
문자열의 선두 또는 끝에서 공백을 제거합니다.
for i in contents:
alist.append(i.strip())
그러나 사용 사례에 따라 다음과 같은 기능을 사용하는 것이 더 나을 수 있습니다.numpy.loadtxt
또는 심지어numpy.genfromtxt
파일에서 읽고 있는 데이터의 배열이 필요한 경우.
from string import rstrip
with open('bvc.txt') as f:
alist = map(rstrip, f)
주의사항:rstrip()
는 공백 공간을 삭제합니다.즉, 다음과 같습니다.\f
,\n
,\r
,\t
,\v
,\x
공백,
중요한 캐릭터만 대사에 남겨두고 싶으신가 봐요.그럼 그냥map(strip, f)
머리글의 공백도 없애면 더 잘 맞을 거예요.
NL만을 배제하고 싶은 경우\n
및 RF\r
기호, 수행:
with open('bvc.txt') as f:
alist = f.read().splitlines()
인수 전달이 없는 splitlines()는 NL 및 RF 기호를 유지하지 않습니다(Windows는 줄의 끝에 NLRF를 사용하여 파일을 기록합니다).다른 공백, 특히 탭은 유지합니다.
.
with open('bvc.txt') as f:
alist = f.read().splitlines(True)
와 같은 효과가 있다
with open('bvc.txt') as f:
alist = f.readlines()
즉, NL과 RF가 유지되는 것입니다.
저도 같은 문제가 있었고, 다음과 같은 해결책이 매우 효율적이라는 것을 알았습니다.나는 그것이 너나 같은 일을 하고 싶은 모든 사람들에게 도움이 되기를 바란다.
먼저 파일의 적절한 열기/닫기를 보장하므로 "with" 문장으로 시작하겠습니다.
다음과 같이 표시됩니다.
with open("filename.txt", "r+") as f:
contents = [x.strip() for x in f.readlines()]
이러한 문자열(내용 목록의 모든 항목이 문자열)을 정수 또는 부동으로 변환하려면 다음을 수행할 수 있습니다.
contents = [float(contents[i]) for i in range(len(contents))]
int
float
정수로 변환할 경우.
SO에서의 첫 회답이므로 형식이 올바르지 않다면 죄송합니다.
최근에 파일에서 모든 행을 읽기 위해 이것을 사용했습니다.
alist = open('maze.txt').read().split()
또는 안전성을 높이기 위해 이 기능을 사용할 수도 있습니다.
with f as open('maze.txt'):
alist = f.read().split()
한 줄의 텍스트 사이에 공백이 있으면 작동하지 않지만 예제 파일에는 값을 분할하는 공백이 없을 수 있습니다.은 단순한 하며 빈.''
파일 끝에 있는 줄바꿈과 같은 빈 줄마다 사용할 수 있습니다.
with open('D:\\file.txt', 'r') as f1:
lines = f1.readlines()
lines = [s[:-1] for s in lines]
쓰는 예요.file.readline()[0:-1]
마지막 줄인 줄바꿈을 제외한 모든 것을 읽습니다.
언급URL : https://stackoverflow.com/questions/15233340/getting-rid-of-n-when-using-readlines
'programing' 카테고리의 다른 글
stdout을 Python의 파일로 리디렉션하시겠습니까? (0) | 2022.11.06 |
---|---|
"표 표시" MySQL 쿼리에서 데이터 선택 (0) | 2022.11.06 |
MySQL 데이터베이스로 여러 SQL 파일을 쉽게 가져오는 방법 (0) | 2022.11.06 |
Python용 pip, virtualenv 및 배포 방법은 무엇입니까? (0) | 2022.11.06 |
flask_sqlalchemy 'pool_pre_ping'이 동작하는 경우가 있습니다. (0) | 2022.11.06 |