2016-08-24 106 views
0

我目前正在處理將圖像添加到文件夾的項目。添加它們時,還需要將它們(以四個爲一組)移動到覆蓋已存在的圖像(如果有)的輔助文件夾中。我有一種使用watchdog.py來監視第一個文件夾的工作。當'on_created'事件觸發時,我採用新添加的圖像的文件路徑,並使用shutil.copy()將其複製到第二個文件夾,增加一個計數器,並使用計數器值重新命名圖像複製(所以它變成文件夾/ 1.JPG)。當計數器達到4時,重置爲0,最近的4個圖像顯示在網頁上。所有這些文件夾位於同一驅動器上的本地文件系統中。我在使用python移動文件之前如何檢查文件已被完全複製到文件夾中

我的問題是,有時似乎事件發生在圖像完全保存在第一個文件夾(圖像大約1Mb,但略有差異,所以我不能檢查文件大小),導致部分或損壞的圖像被複制到第二個文件夾。在最壞的情況下,它會拋出一個IOError表示該文件甚至不在那裏。

有任何建議。我使用的是OSX 10.11,Python 2.7。圖像都是Jpegs。

回答

1

我看到多個解決方案:

  1. 當你第一次在第一個文件夾中創建您的圖片,一個後綴添加到他們的名字,例如,filexxx.jpg.part當它們完全寫只是將其重命名,刪除了.part 。 然後在你的看門狗,一定不要與.part
  2. 在你的看門狗結尾的文件工作,檢測映像文件,就像試圖加載與圖像庫中的文件,並捕捉到的異常。
+0

感謝您的快速回復。好吧,我想我知道你的意思。目前看門狗只是在尋找jpegs,所以肯定會奏效。但是,我怎麼知道他們什麼時候寫得完整?我應該補充說,這些文件是由Photoshop放置在第一個文件夾中的,所以我無法將任何監聽器應用於該過程。我只需要等他們到達。 –

+0

你知道他們在關閉時被完全書寫。 http://stackoverflow.com/questions/22406309/how-to-get-a-file-close-event-in-python –

+0

傳奇!謝謝你的幫助。 –

相關問題