我有一个文件:Alus.txt
文件内容:(每个名字换行)
Margus
Mihkel
Daniel
Mark
Juri
Victor
Marek
Nikolai
Pavel
Kalle
问题:当程序读取这个文件时,每个名字后面都有 \n
(['Margus\n', 'Mihkel\n', 'Daniel\n', 'Mark\n', 'Juri\n', 'Victor\n', 'Marek\n', 'Nikolai\n', 'Pavel\n', 'Kalle']
)。如何删除 \n
并获得包含名称的列表?我做错了什么?谢谢。
alus = []
file = open('alus.txt', 'r')
while True:
rida = file.readline()
if (rida == ''):
break
else:
alus.append(rida)
最佳答案
您可以使用 rstrip 删除换行符:
alus = []
with open('alus.txt', 'r') as f:
for rida in f:
rida=rida.rstrip()
if rida: alus.append(rida)
else: break
顺便说一句,通常测试字符串是否为空的方法是
if not rida:
而不是
if (rida == ''):
如果你有一个 if...else
block ,你应该考虑非否定形式:
if rida:
因为它通常更容易阅读和理解。
编辑:我之前关于删除 break
的评论是错误的。 (我将 break
误认为是 continue
。)由于 break
停止循环,因此需要保留它以保留原始代码的行为。
编辑 2: A.L. Flanagan正确地指出 rstrip
删除了所有尾随空格,而不仅仅是结束换行符。如果您只想删除换行符,可以使用 A.L. Flanagan 的方法,或者将您希望删除的字符列为 rstrip
的参数:
rida = rida.rstrip(r'\r\n')
关于python - 在 Python 中读取文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062858/