在python3中使用稀疏方法向文件追加空字节?

在python3中使用稀疏方法向文件追加空字节?,python,python-3.x,bytestream,Python,Python 3.x,Bytestream,如果我从头开始创建一个稀疏文件,并且希望使其大小为n,我将使用bytestream.seek(n-1)偏移指针,然后在末尾写入一个空字节。比写n长度的ByTestStream快得多 但是,如果我用open(…,'ab')打开了上述文件,seek()就不再是一个选项,只要我调用write(),位置就会重置到文件的末尾,如文档中所述。 使用python的ammend时,似乎唯一的选择是写入每个单独的空字节 是否有另一种方法可以高效、快速地将空字节追加到预先存在的文件中?追加模式确实会击败seek,但

如果我从头开始创建一个稀疏文件,并且希望使其大小为n,我将使用bytestream.seek(n-1)偏移指针,然后在末尾写入一个空字节。比写n长度的ByTestStream快得多

但是,如果我用open(…,'ab')打开了上述文件,seek()就不再是一个选项,只要我调用write(),位置就会重置到文件的末尾,如文档中所述。 使用python的ammend时,似乎唯一的选择是写入每个单独的空字节


是否有另一种方法可以高效、快速地将空字节追加到预先存在的文件中?

追加模式确实会击败
seek
,但
seek
的部分目的是比追加模式更灵活。在更新模式(
'r+b'
)下打开,您可以搜索到或超过文件的结尾。(您可以在文本模式下搜索,但不能超过结尾。)

是的,但如文档中所述,如果您在“ba”模式(二进制+附加)下打开文件,则seek命令会在写入时立即恢复。试一试。刚发现我可以用“r+b”。。。我想,为了附加一个文件,我需要“a”字符。问题解决了!