在Python中反转文件内容从头到尾

0 投票
4 回答
2501 浏览
提问于 2025-04-17 09:23

我正在调查我家电脑上的一些文件。这些文件很长,主要是文本内容,但内容似乎是反向的,比如说,www.google.com 变成了 moc.elgoog.www。文件里还有很多非ASCII字符。

我觉得用Python来处理这些文件是最好的选择,这样我可以把它们正常读取,看看里面到底写了什么。

谢谢!

4 个回答

2

如果这些文件不太大(也就是说,它们可以放进内存里),你可以这样做:

for fn in list_of_original_files:
    open(fn+'_reversed', 'w').write(reversed(open(fn).read()))

或者更安全的做法是:

for fn in list_of_original_files:
    with open(fn, 'r') as r:
        with open(fn+'_reversed', 'w') as w:
            w.write(reversed(r.read()))
3

简单粗暴的小技巧:

f = open(filename, "rb")
s = f.read()
f.close()
f = open(output_filename, "wb")
f.write(s[::-1])
f.close()

不过,直接把strings的输出反转可能会更好。

4

将字节以相反的顺序写入:

import os

bufsize = 1 << 15
with open('file.in', 'rb') as f, open('file.out', 'wb') as fout:
    f.seek(0, os.SEEK_END) # move to the end of file
    for pos in reversed(xrange(0, f.tell(), bufsize)):
        f.seek(pos, os.SEEK_SET)
        fout.write(f.read(bufsize)[::-1])

撰写回答