Я не думаю, что в использовании time.sleep()
есть что-то "непрофессиональное". На самом деле, наименее профессиональным (или, по крайней мере, Pythonic) в решении, которое вы предлагаете, является использование os.system
. Вместо этого используйте функцию из модуля subprocess
. В этом случае вы можете использовать subprocess.call
, который ожидает выхода из программы, прежде чем продолжить. Так, например, если вы делаете это в интерактивном переводчике:
import subprocess, shlex
subprocess.call(shlex.split('sleep 5'))
Вы увидите, что Python ждет пять секунд, пока sleep
завершит свою работу, прежде чем продолжить. (Затем он возвращает код завершения.) Shlex просто разбивает командную строку на список аргументов для использования call
или несколькими другими функциями и классами, предоставленными subprocess
.
>>> shlex.split("start wkhtmltopdf.exe result.html %s%s" %('out_dir/', 'pdf_name'))
['start', 'wkhtmltopdf.exe', 'result.html', 'out_dir/pdf_name']