2010-10-27 66 views
1

我正在做某種複雜的操作,它需要代碼的最後一行已完成,然後繼續下一步,例如。我需要確保一個文件已經寫在磁盤上然後讀取它。總是在文件沒有寫入磁盤時觸發下一行代碼,從而出現錯誤。如何解決此問題?Python:如何確保最後一行代碼已完成?

好吧..

picture.save(path, format='png') 
time.sleep(1)  #How to ensure the last step has finished 
im = Image.open(path) 
+2

如果沒有顯示問題的代碼,則無法知道問題所在。 – vanza 2010-10-27 03:38:21

+2

第一步:發佈有問題的代碼。 – 2010-10-27 03:38:44

+1

如果picture.save在後臺不是異步或多線程的,它會在下一行執行前總是完成。這是否與一些將背景保存在背景中的庫? – 2010-10-27 03:42:55

回答

1

你不需要做任何事情,除非前面的操作是異步的。你的情況,你應該檢查picture.save的文檔,看看它是否明確定義爲異步。默認情況下一切都是同步的。每一行都會在繼續執行下一個操作之前完成。

1

好像你只是要檢查的是,有試圖打開它之前在path文件。

可能在嘗試打開它之前檢查路徑的存在,如果睡眠不存在,但睡眠時間可能不夠長,並且打開文件時可能還是有問題。

你真的應該只是圍住打開操作在try-except塊:

try: 
    im = Image.open(path) 
except [whatever exception you are getting]: 
    # Handle the fact that you couldn't open the file 
    im = None # Maybe like this.. 
相關問題