如何在Python中查找并追加到二进制文件?
我在往一个二进制文件里添加数据时遇到了问题。当我用 seek()
方法定位到某个位置,然后在那个位置用 write()
方法写入数据,接着再读取整个文件时,我发现数据并没有写到我想要的位置。相反,我发现它出现在了每段数据或文本的后面。
我的代码
file = open('myfile.dat', 'wb')
file.write('This is a sample')
file.close()
file = open('myfile.dat', 'ab')
file.seek(5)
file.write(' text')
file.close()
file = open('myfile.dat', 'rb')
print file.read() # -> This is a sample text
你可以看到 seek
方法并没有起作用。我该怎么解决这个问题呢?有没有其他方法可以做到这一点?
谢谢
4 个回答
3
不用管 seek 命令。你已经用 'a' 模式打开了文件,这样就可以直接在文件末尾添加内容了。
6
r+b应该可以按照你的想法工作。
37
在某些系统中,'ab'
这个选项会让所有的写入操作都发生在文件的末尾。你可能更想用'r+b'
这个选项。