Python 3:将输入文件以相反顺序写入输出文件

3
我会尽力帮忙翻译。以下是需要翻译的内容:

我已经尝试过搜索,但是没有找到我需要的东西。我正在使用Python 3,并且需要帮助将文本文件以相反的顺序写入另一个输出文件。

因此,这将是输入文件

Hey, I am Fred

Fred, what's up

Fred fred fred

这将是输出文件。
Fred fred fred

Fred, what's up

Hey, I am Fred

如果有人对如何实现此事有任何见解,我会非常感激。

1个回答

2
with open (input_file_name) as fi, open(output_file_name, 'w') as fo:
    fo.writelines(reversed(fi.readlines()))

如果输入文件格式不正确(最后一行没有以'\n'结尾),您可以使用一个快速的(可能不太高效)技巧:
with open ('c:\\temp\\input_file') as fi, open('c:\\temp\\output_file', 'w') as fo:
    fo.write('\n'.join(reversed(fi.read().splitlines())))

在打开文件时带有“t”标志会更清楚地表明你获取的是文本。否则还不错。 - Lennart Regebro
嘿,这段代码几乎可以工作,但是它做了一些奇怪的事情。假设代码的行数为1、新行2、新行3。输出文件将包含32、新行1。如果代码行为Fred、新行Tiger、新行Ant,情况也同样如此。输出文件将包含AntTiger、新行Fred。 - pythonhack
@user1797763,这并没有什么奇怪的,它是一个简单的解决方案,但不能处理格式不正确的文本文件。我已经更新了答案以适应你的情况。 - panda-34
完美。谢谢,感激不尽。 - pythonhack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接