2010-10-27 40 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.. 
相关问题