cPickle.dump(object,file)
始终转储到文件末尾。有没有办法在文件中的特定位置转储?我希望以下代码段能够正常工作
file = open("test","ab")
file.seek(50,0)
cPickle.dump(object, file)
file.close()
但是,上面的代码片段会将对象转储到文件的末尾(假设文件已经包含1000个字符),无论我在哪里寻找文件指针。
答案 0 :(得分:2)
我认为打开文件的方式可能比cPickle
更具问题。
ab
模式,除了作为附加模式(由于您seek
之后应该没有相关性),还为低级O_TRUNC
系统调用提供open
标志。如果您不想截断,则应尝试r+
模式。
如果这不能解决您的问题并且您的对象不是很大,您仍然可以使用dumps
:
file = open("test","ab")
file.seek(50,0)
dumped= cPickle.dumps(object)
file.write(dumped)
file.close()