Python 读取文件并向后写入

Python 读取文件并向后写入,python,python-3.x,Python,Python 3.x,所以我一直在想办法,我在下面的书中找到了这段代码,它假设是向后列出一个文件。我不知道如何将其应用到我的代码中。我的主要目标是编写一个程序,读取文件中的每一行,然后反转其行并将其写入另一个文件 #input inPut = input("Please enter a file name: ") outPut = input("Please enter a file name which you would like the file reversed: ") #open infile = ope

所以我一直在想办法,我在下面的书中找到了这段代码,它假设是向后列出一个文件。我不知道如何将其应用到我的代码中。我的主要目标是编写一个程序,读取文件中的每一行,然后反转其行并将其写入另一个文件

#input
inPut = input("Please enter a file name: ")
outPut = input("Please enter a file name which you would like the file reversed: ")

#open
infile = open(inPut, "r")
outfile = open(outPut, "w")

#list main file

line = infile.readline()
line = line.rstrip()
while line != "" :
    print(line)
    line = infile.readline()
    line = line.rstrip()

#output file in reversed
outfile.write(
####confused here######




#close files
infile.close()
outfile.close() 
reversed()
将返回您提供的数据的副本,但顺序相反

当您调用
open(filename)
时,您将返回一个file对象,该对象提供文件中的行<代码>列表()
reversed()
然后从列表中按相反顺序给出行

如果要反转直线,需要执行以下操作:

for line in reversed(list(open("filename"))):
        print(line.rstrip())
但是
s
将不是字符串。它将是一个迭代器,每次迭代它时,您将返回一个字符。您需要的是一种将这些字符连接回字符串的方法

因此,您可以使用
str.join()
,它知道如何使用迭代器。您只需使用空字符串作为连接字符之间的分隔符:

s = reversed(line)
所以现在您只需要一种从文件中获取行的方法,以及一种写出更改的方法。以下是最好的方法:

s = ''.join(reversed(line))
所以只要修改上面的内容,让用户输入文件名,我想你就会得到你想要的

如果您想了解有关迭代器的更多信息,请从这里开始:


祝你好运,玩得开心

您是否试图按照代码所示颠倒行的顺序,或者按照描述所示颠倒行本身的顺序,或者按照标题所示颠倒整个文件的顺序?
in_name = "some_input_file_name.txt"
out_name = "some_output_file_name.txt"
with open(in_name, "rt") as in_f, open(out_name, "wt") as out_f:
    for line in in_f:
        line = line.strip()
        reversed_line = ''.join(reversed(line))
        out_f.write(reversed_line + "\n")