#python #subprocess
#питон #подпроцесс
Вопрос:
пример кода:
import subprocess import shlex popen_args = "soffice --calc --norestore --nologo accept="socket,host=localhost,port=2002; urp; StarOffice.ServiceManager" " "/home/user/test_sheet.ods" popen_args = shlex.split(popen_args) data_file_subprocess_handle = subprocess.Popen(popen_args, stdout = subprocess.PIPE, text=True) # NoNoNoNoNoNo it stalls application untill sheet is manually closed # data_file_subprocess_handle.wait() time.sleep(5)
Я загружаю большие листы данных, поэтому мне нужно установить время сна на 5 секунд, чтобы убедиться, что лист полностью загружен, прежде чем я смогу продолжить извлечение и т. Д… Если я не подожду достаточно долго, Popen вылетит, потому что он думает, что нет открытого листа. использование функции ожидания не работает, потому что тогда мне придется закрыть приложение вручную, прежде чем сценарий продолжится.
Существует ли функция подпроцесса.waitForApplicationToFinishLoading, или я смотрю на это совершенно неправильно?