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

时间:2014-04-12 22:41:46

标签: python python-3.x reverse

所以我试图扭转所有线路,但相反,我得到完全奇怪的反转,它将第4行放在第5行与5线...

文件在翻转之前的样子:

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 个答案:

答案 0 :(得分:2)

您似乎在最后一行('\n')没有结束符号。 可以通过在需要时添加'\n'来轻松修复:

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

答案 1 :(得分:2)

文件的每一行都有一个换行符\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()从字符串末尾或右侧删除所有空格。但是,这也会删除空格,制表符等。