Python 删除输出文件的最后256字节

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个字节

在关闭文件之前,我想删除这256个额外字节。它们都是“0”

我该怎么做才容易呢


谢谢您

使用从末尾查找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就会工作。