在Python中反转文件内容从头到尾
我正在调查我家电脑上的一些文件。这些文件很长,主要是文本内容,但内容似乎是反向的,比如说,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])