我正在做某种复杂的操作,它需要代码的最后一行已完成,然后继续下一步,例如。我需要确保一个文件已经写在磁盘上然后读取它。总是在文件没有写入磁盘时触发下一行代码,从而出现错误。如何解决此问题?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