2017-05-11 62 views
0

我試圖處理在一個文件夾中創建一些文件,但有時,在打開文件時的Python [錯誤13]許可被拒絕,蟒蛇返回我[錯誤13:權限被拒絕。打開時,一些圖像

我只是做

file = open(file_path, 'rb') 

和怪異的所有的是,大多數時間的文件被正確打開,錯誤是不相關的某些特定文件(測試過幾次)。 我已經嘗試更改file_path格式但不起作用。

我使用python 3.5和看門狗LIB來監視文件創建活動的目錄,然後我得到了事件的src_path並打開它。此外,在Windows 10

+0

當試圖打開一個相同的文件,有時會產生一個錯誤,但有時它的工作原理?這種不一致可能是由於試圖打開已經在其他地方打開的文件造成的...... –

+0

「有時候」......「大部分時間」......我們如何複製錯誤和幫助你,如果連你都無法成功重現錯誤?請提供一個[最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve) –

+0

@Rightleg但是當我再次運行代碼並嘗試打開導致錯誤的文件時,它的工作原理。並且該文件僅在代碼中打開一次,因爲它是由其創建而觸發的。 – Bruno

回答

1

運行,所以,貌似這個問題有點起來的代碼。正如我所提到的,我使用watchdog lib來檢測文件創建,並在那種情況下我打開了創建的文件。問題是當文件完成移動/粘貼/創建時,文件創建事件不會發生,但前幾個字節會到達目錄。所以問題是我在「創建」過程完成之前試圖打開文件,因此它仍然在寫。

我尋找一種方式來獲得成品書寫事件,但看門狗lib中沒有此功能,它看起來就像是完成寫作活動是僅限於Linux的功能。

所以現在我等待一段時間,通過一個定時器線程打開文件之前,它似乎工作得很好,因爲我不需要新的文件瞬間動作,也不需要處理龐大的文件。