Python 删除输出文件的最后256字节
我有一个打开的输出文件。由于限制,我的程序总是向该文件额外写入256个字节 在关闭文件之前,我想删除这256个额外字节。它们都是“0” 我该怎么做才容易呢Python 删除输出文件的最后256字节,python,python-2.7,Python,Python 2.7,我有一个打开的输出文件。由于限制,我的程序总是向该文件额外写入256个字节 在关闭文件之前,我想删除这256个额外字节。它们都是“0” 我该怎么做才容易呢 谢谢您使用从末尾查找256字节并截断文件(使用)。添加文件.flush()可能是谨慎的做法: import os fileobj.flush() # clear buffers fileobj.seek(-256, os.SEEK_END) # 256 bytes from the end fileobj.truncate() 你想用
谢谢您使用从末尾查找256字节并截断文件(使用)。添加
文件.flush()
可能是谨慎的做法:
import os
fileobj.flush() # clear buffers
fileobj.seek(-256, os.SEEK_END) # 256 bytes from the end
fileobj.truncate()
你想用python或其他工具来做吗
dd
真的很快。奇怪为什么一开始就无法避免写入这些字节。因为Python的限制。难道您不知道Python喜欢在输出的末尾写入随机数据吗?xD,@thundium:最好首先修复你的代码。@gnibbler,这是一个很长的词。因为除了使用read函数,我无法知道EOF。但对于我的结构,如果读取了a文件,则“000000”或从该文件读取的数据将写入输出文件。因此,我只能关闭所有的输入文件,如果不是数据或len(数据)Tada!比dd快even@falsetru:谢谢你的更正;忘记了即使使用操作系统,seek\u END始终是向前的。它从import:seek\u END?@thundium:该消息没有意义。您是否导入了os
?或者,您可以使用整数2
,而不是.aha,这是因为我使用了test.py来测试如何使用这个新代码,但是,由于我没有向文件中写入任何内容,指针还没有结束。所以带参数(-2,2)的“seek”函数不起作用。在使用fileobj.write(“aaacccc”)之后,seek就会工作。