Skip to main content
 首页 » 编程设计

python之在 Python 中读取文件的问题

2025年05月04日8qq号

我有一个文件: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')