我正在做某種複雜的操作,它需要代碼的最後一行已完成,然後繼續下一步,例如。我需要確保一個文件已經寫在磁盤上然後讀取它。總是在文件沒有寫入磁盤時觸發下一行代碼,從而出現錯誤。如何解決此問題?Python:如何確保最後一行代碼已完成?
好吧..
picture.save(path, format='png')
time.sleep(1) #How to ensure the last step has finished
im = Image.open(path)
我正在做某種複雜的操作,它需要代碼的最後一行已完成,然後繼續下一步,例如。我需要確保一個文件已經寫在磁盤上然後讀取它。總是在文件沒有寫入磁盤時觸發下一行代碼,從而出現錯誤。如何解決此問題?Python:如何確保最後一行代碼已完成?
好吧..
picture.save(path, format='png')
time.sleep(1) #How to ensure the last step has finished
im = Image.open(path)
你不需要做任何事情,除非前面的操作是異步的。你的情況,你應該檢查picture.save的文檔,看看它是否明確定義爲異步。默認情況下一切都是同步的。每一行都會在繼續執行下一個操作之前完成。
好像你只是要檢查的是,有試圖打開它之前在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..
如果沒有顯示問題的代碼,則無法知道問題所在。 – vanza 2010-10-27 03:38:21
第一步:發佈有問題的代碼。 – 2010-10-27 03:38:44
如果picture.save在後臺不是異步或多線程的,它會在下一行執行前總是完成。這是否與一些將背景保存在背景中的庫? – 2010-10-27 03:42:55