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

标签 python list file

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

相关文章:

php - 创建文件 txt 时如何与文本保持一致 - PHP

javascript - 使用javascript如何从USB移动设备打开图像

python - 在 PyQt 中将 QstringList 转换为 Qstring

python - Python 中字符串各部分的总和

Python矩阵(列表列表)到字典

python - 如何像在字典中一样根据 len-1 或 len+1 匹配单词? Python

python - Scrapy 蜘蛛 :relative link and absolute link

python - SQL Alchemy IN 查询中出现 PG8000 异常 : invalid input syntax for type integer: "{2,3,5,6,7}"

list - SML:如何确定列表索引是否为空?

file - 去安装: add non-source files to built package