移除除了最后一行外每行的"\n

4 投票
2 回答
1383 浏览
提问于 2025-04-17 20:10

现在我有一个 test.txt 文件

1234
5678

我想把每一行打印出来,但不想要换行符 "\n"

file=open("test.txt","r")
lines = file.readlines()
for i in lines:
    print i[:-1]

这样做会去掉第一行的 \n,但对于第二行:5678,最后的 8 会被切掉,因为后面没有 \n。有什么好的方法可以正确处理这个问题吗?

2 个回答

4

可以使用 rstrip 这个方法。

i.rstrip() 会把字符串右边的所有空白去掉,而 i.rstrip('\n') 只会去掉换行符。

4

你可以使用 str.rstrip 这个方法。

for i in lines:
    print i.rstrip('\n')

这个方法会去掉每一行末尾的换行符(如果有的话)。单独使用 rstrip 会去掉所有末尾的空白字符,不仅仅是换行符。

举个例子:

>>> 'foobar\n'.rstrip('\n')
foobar
>>> 'foobar'.rstrip('\n')
foobar
>>> 'foobar  \t \n'.rstrip()
foobar

还有两个相关的方法:str.strip,这个方法会去掉字符串两端的空白字符;还有 str.lstrip,这个方法只会去掉左边的空白字符。

撰写回答