首页 > 解决方案 > 编写一个程序,读取一个文件并以相反的顺序写出一个新文件

问题描述

编写一个程序,读取一个文件并以相反的顺序写出一个新文件(即旧文件中的第一行成为新文件中的最后一行。)

我能够正确使用反转行,reverse()但我无法将输出写入新文件。这是我到目前为止的代码。

f = open("States.txt", "rb")
s = f.readlines()
f.close()
f = open("newstates2.txt", "wb")
x = s.reverse()
f.write(x)

标签: pythonpython-3.xlistreverse

解决方案


reverse()不返回任何东西。如果要使用reverse(),则必须在s之后使用,而不是为反向列表创建新变量。另外,readlines()返回一个列表,所以你不能write()直接调用它,但你可以遍历它。这是一个更新的版本:

f = open("States.txt", "rb")
s = f.readlines()
f.close()
f = open("newstates2.txt", "wb")
s.reverse()
for line in s:
    f.write(line)
f.close()

或者,您可以使用reversed()which 确实返回相反的版本:

for line in reversed(s):
    f.write(line)

推荐阅读