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