Python: Как обеспечить завершение последней строки кода? - PullRequest
1 голос
/ 27 октября 2010

Я делаю какую-то сложную операцию, для этого нужно, чтобы были завершены последние строки кода, затем перейдите к следующему шагу, например.Мне нужно убедиться, что файл записан на диске, а затем прочитать его.Всегда следующая строка кода запускается, пока файл не записан на диск, и поэтому возникает ошибка.Как решить это?

Хорошо ..

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

Ответы [ 2 ]

1 голос
/ 27 октября 2010

Вам не нужно ничего делать, если предыдущая операция не является асинхронной. В вашем случае вы должны проверить документацию picture.save, чтобы увидеть, определено ли оно как асинхронное. По умолчанию все синхронизировано. Каждая строка завершится до того, как перейдет к следующей операции.

1 голос
/ 27 октября 2010

Похоже, вы просто хотите проверить, есть ли файл на path, прежде чем пытаться его открыть.

Вы могли бы проверить существование пути, прежде чем пытаться открыть его и немного поспать, если он не существует, но этот сон может быть недостаточно продолжительным, и у вас все еще может быть проблема с открытием файл.

Вы действительно должны просто заключить операцию открытия в блок try-кроме:

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..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...