![](/img/trans.png)
[英]How to make sure a file exists or can be created before writing to it in Python?
[英]How to make sure a file is completed before copying it?
應用程序A(超出我的控制范圍)將文件寫入目錄。 寫入文件后,我想用我的python腳本將其備份到其他地方。
問題:如何確定文件已完成,或者應用程序A仍在寫入文件,以便我應等待文件完成? 我擔心我會復制部分文件...。
我想使用此函數shutil.copyfile(src,dst)
但我不知道它是否安全,還是應該檢查文件以其他方式進行復制。
一般來說, 您不能 。
因為您沒有解決問題所需的信息。
如果您必須知道文件已成功完全傳輸/創建/寫入/成功,則創建者必須以某種方式向您發送信號,因為只有創建者才具有該信息。 從接收方來看,通常無法推斷出文件已完全傳輸。 您可以嘗試猜測 ,僅此而已。 例如,您通常不能告訴您從丟失連接的位置進行的完整傳輸。
因此,您需要來自發送者的某種信號。
一種常見的方法是使用重命名操作,例如從filename.xfr
到filename
,或者從“工作中”目錄到您正在觀看的目錄。 由於大多數操作系統都是原子地執行此類重命名操作,因此,如果發件人僅在成功完成傳輸后才進行重命名,那么您將僅處理已成功傳輸的完整文件。
另一種常見的信號是發送一個“完成”標志的文件,如發送filename.done
一旦filename
已成功發送。
由於您不控制發件人,因此無法通過監視文件來可靠地解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.