cPickle.dump(object,file)
始终在文件末尾转储。有没有办法在文件中的特定位置转储?我希望下面的代码片段工作cPickle.dump始终在文件末尾倾销
file = open("test","ab")
file.seek(50,0)
cPickle.dump(object, file)
file.close()
然而,上面的代码中转储的对象在文件的结尾(假设文件已经包含了1000个字符),无论在哪里我所寻求的文件指针。
cPickle.dump(object,file)
始终在文件末尾转储。有没有办法在文件中的特定位置转储?我希望下面的代码片段工作cPickle.dump始终在文件末尾倾销
file = open("test","ab")
file.seek(50,0)
cPickle.dump(object, file)
file.close()
然而,上面的代码中转储的对象在文件的结尾(假设文件已经包含了1000个字符),无论在哪里我所寻求的文件指针。
我认为这可能是更多的问题与如何打开文件比cPickle
。 ab
模式除了作为追加模式(应该与您的seek
不相关)之外,还提供O_TRUNC
标志给系统调用的低级别open
。如果你不想截断,你应该尝试r+
模式。
如果这不能解决问题,YOUT和你的对象不是非常大,您仍然可以使用dumps
:
file = open("test","ab")
file.seek(50,0)
dumped= cPickle.dumps(object)
file.write(dumped)
file.close()
在一个侧面说明,你应该使用'with'来打开文件 – 2014-09-04 10:26:23