Python从文件读取,以反向顺序写入

时间:2015-09-30 21:53:21

标签: python python-2.7

我正在做一本书的练习,无法解决这个问题;这不是家庭作业,我正在努力教自己,我一直在尝试任何我能想到的东西来做这项工作!

我需要从文本文件中读取行,然后以相反的顺序将行写入新文件。

我的问题是,我可以将它按顺序排列(我假设它意味着'r'文件的最后一行首先打印在'w'文件中),但它也会打印出反转的单词,它不可读。

有没有办法可以按相反的顺序写行,但这些行仍然可读?

这就是我所拥有的:

filetoread = 'yolo.txt'
file = open(filetoread, 'r')
words = file.read()
wrf = 'yip.txt'
wfile = open(wrf, 'w')


for lines in reversed(list(words)):
    print wfile.write(lines)

2 个答案:

答案 0 :(得分:3)

您可能需要注意,使用with语句通常更容易,更安全。这样你就不用担心打开文件而忘记关闭它。另外,如果with块内发生异常,文件仍会自动关闭;如果没有try...finally,您必须使用with语句执行此操作。

以下是使用with的示例:

with open('yolo.txt', 'r') as readf, open('yip.txt', 'w') as writef:
    for line in reversed(readf.readlines()):
        writef.write(line)

答案 1 :(得分:0)

你的意思是

wfile.write("".join(reversed(list(open("some_file.txt")))))