我是Python新手,试图用zer0s覆盖文件的最后128个字节。我做错了什么?
try:
f = open(outputFile, "wb")
f.seek(128, 2) # seek relative to end of file
f.write(b'\0'*128)
f.close()
except Exception as e:
sys.exit('Error writing output file ' + str(e))
运行正常,但我的2mB文件被截断为256字节,全部为zer0。
答案 0 :(得分:3)
作为documented,以'w'
模式打开会截断文件(即删除其现有内容)。尝试在'r+b'
模式下打开它。
另外,如here所述(尽管不完全清楚),相对于文件末尾的搜索仍然使用正数表示“向前”而负向表示“向后”(即朝向开头)文件)。您正在寻找文件的末尾。使用seek(-128, 2)
。