在Python中读取文件时出现问题

2024-09-28 04:21:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个档案:铝.txt在

文件内容:(新行中的每个名称)

Margus

Mihkel

Daniel

Mark

Juri

Victor

Marek

Nikolai

Pavel

Kalle

问题:当程序读取此文件时,每个名称(['Margus\n', 'Mihkel\n', 'Daniel\n', 'Mark\n', 'Juri\n', 'Victor\n', 'Marek\n', 'Nikolai\n', 'Pavel\n', 'Kalle'])后面都有\n。如何删除\n并拥有一个带有名称的列表?我做错什么了?谢谢您。在

alus = []

file = open('alus.txt', 'r')

while True:

    rida = file.readline()

    if (rida == ''):

        break

    else:

        alus.append(rida)

Tags: 文件txt名称pavelmarkdanielvictormarek
3条回答
alnus = [l.rstrip() for l in open('alus.txt', 'r')]

可以使用rstrip删除换行符:

alus = []
with open('alus.txt', 'r') as f:
    for rida in f:
        rida=rida.rstrip()
        if rida: alus.append(rida)
        else: break

顺便说一下,测试字符串是否为空的通常方法是

^{pr2}$

而不是

if (rida == ''):

如果您有一个if...else块,您应该考虑非否定形式:

if rida:

因为它通常更容易阅读和理解。在

编辑:我之前关于删除break的评论是错误的。(我把breakcontinue弄错了)由于break停止了循环,所以需要保留它以保留原始代码的行为。在

edit2:A.L. Flanagan正确地指出rstrip删除了所有尾随空格,而不仅仅是结束换行符。如果只想删除换行符,可以使用A.L.Flanagan的方法,或者将要删除的字符列为rstrip的参数:

rida = rida.rstrip(r'\r\n')

打开('铝.txt').read().splitlines()

相关问题 更多 >

    热门问题