Python:读取文件并反转所有行

2 投票
2 回答
6781 浏览
提问于 2025-04-18 02:32

我想把所有的行都反转过来,但结果却很奇怪,第四行变成了第一行,接着是第五行...

反转之前文件的样子:

1 line
2 line
3 line
4 line
5 line

反转之后的样子:

5 line4 line
3 line
2 line
1 line

这是代码:

    file = open(filename, "r")
    list = file.readlines()
    file.close()

    list.reverse()

    file = open(filename, "w")
    for value in list:
        file.write(value)
    file.close()

2 个回答

3

文件中的每一行最后都有一个换行符 \n,除了最后一行。

最简单的方法就是这样做:

file.open(filename,'r')
lines = file.read().split("\n")
file.close()
file = open(filename, "w")
file.write("\n".join(lines[::-1]))
file.close()

你也可以试试用 str.strip()str.rstrip() 来去掉字符串两端或者右边的空白。这种方法会把空格、制表符等都去掉。

3

看起来你在最后一行没有加换行符('\n')。这个问题可以很简单地解决,只需要在需要的地方加上'\n'就行了:

file = open(filename, "w")
    for value in list:
         file.write(value.rstrip() + "\n")
    file.close()

撰写回答