2012-10-07 52 views
0

我注意到,python總是記住它在文件中完成寫入的位置,並從此處繼續。 有沒有辦法重置,以便如果文件是由另一個程序刪除某些文本和廣告編輯另一個python不會用NULL填充空白,當它下一次寫入?python和另一個程序寫入相同的文件

我在父文件中打開該文件,並且線程化子程序正在寫入該文件。我使用flush來確保寫入後數據被物理寫入文件,但這只是一個好的做法。

有沒有另一個功能,我似乎錯過了,將使python正確追加?

+0

9個觀點,沒有人知道? –

回答

1

一個安全的事情,獨立於操作系統,可靠是肯定要關閉文件,並在寫作時再次打開它。

如果因此導致的性能障礙是不可接受的,那麼可以嘗試在寫入之前使用「seek」移動到文件末尾。我只是在交互式控制檯上做了一些天真的測試,實際上,在編寫工作之前使用file.seek(0, os.SEEK_END)

不是說我認爲在大多數情況下寫入同一個文件的兩個進程可能是安全的 - 最終會出現這種情況。一種解決方法是實現文件鎖定,以便一個進程在獲取鎖定後寫入文件。可以考慮在正確的wya中完成這項工作。因此,如果您的應用程序不能在更好的地方使用某些內容來精心構建並強化這些年的數據,以允許各種進程(如SQL引擎(MySQL或Postgresql))同時進行更新。

相關問題