.readlines () 사용시 \n 제거하기
이 질문에는 이미 답변이 있습니다.
- 파이썬 10 답변 에서 줄 바꿈없이 파일 읽기
값이있는 .txt 파일이 있습니다.
값은 다음과 같이 나열됩니다.
Value1
Value2
Value3
Value4
내 목표는 값을 목록에 넣는 것입니다. 그렇게하면 목록은 다음과 같습니다.
['Value1\n', 'Value2\n', ...]
은 \n
필요하지 않습니다.
내 코드는 다음과 같습니다.
t = open('filename.txt', 'r+w')
contents = t.readline()
alist = []
for i in contents:
alist.append(i)
이것은 당신이 원하는 것을해야합니다 (\ 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]
문자열 끝에서 줄 바꿈 만 제거 하는 .rstrip('\n')
데 사용할 수 있습니다 .
for i in contents:
alist.append(i.rstrip('\n'))
다른 모든 공백은 그대로 둡니다. 줄의 시작과 끝에서 공백을 신경 쓰지 않으면 큰 망치가라고 .strip()
합니다.
그러나 파일에서 읽고 모든 것을 메모리로 가져 오기 때문에이 str.splitlines()
방법 을 사용하는 것이 좋습니다 . 이것은 줄 구분자에서 하나의 문자열을 나누고 구분자가없는 줄 목록을 반환합니다. file.read()
결과 에 이것을 사용 file.readlines()
하고 전혀 사용하지 마십시오 :
alist = t.read().splitlines()
목록의 각 문자열에 대해 문자열 .strip()
의 시작 또는 끝에서 공백을 제거 하는 을 사용하십시오 .
for i in contents:
alist.append(i.strip())
그러나 유스 케이스에 따라 파일에서 읽고있는 데이터 배열이 필요 numpy.loadtxt
하거나 비슷한 numpy.genfromtxt
경우를 사용하는 것이 좋습니다 .
파일을 연 후 목록 이해는 한 줄로 수행 할 수 있습니다.
fh=open('filename')
newlist = [line.rstrip() for line in fh.readlines()]
fh.close()
나중에 파일을 닫아야합니다.
from string import rstrip
with open('bvc.txt') as f:
alist = map(rstrip, f)
Nota Bene: rstrip()
removes the whitespaces, that is to say : \f
, \n
, \r
, \t
, \v
, \x
and blank ,
but I suppose you're only interested to keep the significant characters in the lines. Then, mere map(strip, f)
will fit better, removing the heading whitespaces too.
If you really want to eliminate only the NL \n
and RF \r
symbols, do:
with open('bvc.txt') as f:
alist = f.read().splitlines()
splitlines() without argument passed doesn't keep the NL and RF symbols (Windows records the files with NLRF at the end of lines, at least on my machine) but keeps the other whitespaces, notably the blanks and tabs.
.
with open('bvc.txt') as f:
alist = f.read().splitlines(True)
has the same effect as
with open('bvc.txt') as f:
alist = f.readlines()
that is to say the NL and RF are kept
I had the same problem and i found the following solution to be very efficient. I hope that it will help you or everyone else who wants to do the same thing.
First of all, i would start with a "with" statement as it ensures the proper open/close of the file.
It should look something like this:
with open("filename.txt", "r+") as f:
contents = [x.strip() for x in f.readlines()]
If you want to convert those strings (every item in the contents list is a string) in integer or float you can do the following:
contents = [float(contents[i]) for i in range(len(contents))]
Use int
instead of float
if you want to convert to integer.
It's my first answer in SO, so sorry if it's not in the proper formatting.
I used the strip function to get rid of newline character as split lines was throwing memory errors on 4 gb File.
Sample Code:
with open('C:\\aapl.csv','r') as apple:
for apps in apple.readlines():
print(apps.strip())
I recently used this to read all the lines from a file:
alist = open('maze.txt').read().split()
or you can use this for that little bit of extra added safety:
with f as open('maze.txt'):
alist = f.read().split()
It doesn't work with whitespace in-between text in a single line, but it looks like your example file might not have whitespace splitting the values. It is a simple solution and it returns an accurate list of values, and does not add an empty string: ''
for every empty line, such as a newline at the end of the file.
with open('D:\\file.txt', 'r') as f1:
lines = f1.readlines()
lines = [s[:-1] for s in lines]
The easiest way to do this is to write file.readline()[0:-1]
This will read everything except the last character, which is the newline.
참고URL : https://stackoverflow.com/questions/15233340/getting-rid-of-n-when-using-readlines
'IT story' 카테고리의 다른 글
배열 요소를 제거한 다음 배열을 다시 색인하는 방법? (0) | 2020.05.08 |
---|---|
Rails 4에서 CSS로 이미지를 참조하는 방법 (0) | 2020.05.08 |
Pandas에 열이 있는지 확인하는 방법 (0) | 2020.05.07 |
Vim 전문가가 왜 탭보다 버퍼를 선호합니까? (0) | 2020.05.07 |
Font Awesome not working, 사각형으로 표시되는 아이콘 (0) | 2020.05.07 |