从列表中删除 \n

时间:2021-04-20 10:33:03

标签: python-3.x

所以我目前正在学习邮件合并并收到了一个挑战。这个想法是打开一个名称文件,读取当前行的名称,然后将其替换为字母并将该字母另存为新项目。

我认为使用 for 循环是个好主意。

打开文件> for 循环> 将名称附加到列表> 循环列表并替换等

除非我尝试将名称实际附加到列表中,否则我会得到:

['Aang\nZuko\nAppa\nKatara\nSokka\nMomo\nUncle Iroh\nToph']

我使用的代码是:

invited_names = []

with open ("./Input/Names/invited_names.txt") as names:
    invited_names.append(names.read())
    for item in invited_names:
        new_names = [str.strip("\n") for str in invited_names]

        print(new_names)

曾尝试替换 \n 和现在的 .strip,但我无法删除 \n。有什么想法吗?

编辑:不确定是否有帮助,但名称的 .txt 文件如下所示:

Aang
Zuko
Appa
Katara
Sokka
Momo
Uncle Iroh
Toph

1 个答案:

答案 0 :(得分:0)

如您所见,read() 仅返回您的邀请名称.txt 文件中的一个巨大字符串。但是,您可以使用 readlines() 返回一个包含每一行字符串的列表(感谢 codeflush.dev 的评论)。然后使用 extend() 方法将此列表添加到另一个列表 invited_names

同样,您同时使用了for 循环列表解析。因此,您多次运行相同的列表理解代码。因此,您可以切断其中任何一个。但我更喜欢你应该保持列表理解,因为它很有效。

试试这个代码:

invited_names = []

with open ("./Input/Names/invited_names.txt") as names:
    invited_names.extend(names.readlines())             # <--
    new_names = [str.strip("\n") for str in invited_names]
    print(new_names)
相关问题