[英]Problem with reading file in Python
我有一个文件:Alus.txt
文件内容:(每个名称在新行中)
玛格斯
米克尔
丹尼尔
标记
朱里
胜利者
马雷克
尼古拉
帕维尔
卡乐
问题:程序读取该文件时,每个名称后都有\\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
块,则应考虑非取反形式:
if rida:
因为它通常更容易阅读和理解。
编辑:我以前关于删除break
评论是错误的。 (我在使用break
continue
时误认为break
。)由于break
停止了循环,因此需要保留该循环以保留原始代码的行为。
编辑2: AL Flanagan正确地指出rstrip
会删除所有结尾的空格,而不仅仅是结尾的换行符。 如果只想删除换行符,则可以使用AL Flanagan的方法,或将要删除的字符作为rstrip
的参数rstrip
:
rida = rida.rstrip(r'\r\n')
alnus = [l.rstrip() for l in open('alus.txt', 'r')]
打开('alus.txt')。read()。splitlines()
rstrip()的一个可能问题是它将删除所有空格。 如果要保留空格,可以使用切片:
if line.endswith('\n'):
line = line[:-1]
如果可以确定所有行都以'\\ n'结尾,则可以通过删除if来加快速度。 但是,通常不能确定文本文件的最后一行是否有换行符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.