Python не ждет завершения subprocess.callPython

Программы на Python
Anonymous
Python не ждет завершения subprocess.call

Сообщение Anonymous »

Я запускаю скрипт Python, который вызывает PowerShell в Windows. Но похоже, что Python не ждет завершения сценария PowerShell, прежде чем двигаться дальше (или, по крайней мере, так кажется). Вот мой код:

Код: Выделить всё

import numpy as np
import subprocess

filename = "out_test.txt"

subprocess.call(r"powershell.exe & '.\SIMION 8.1.lnk' fly --recording-output=.\out_test.txt .\optimize_setup.iob")

data = np.loadtxt(filename,skiprows=1)
print(len(data))
Функция, вызываемая в subprocess.call, работает нормально, когда я использую ее в самой PowerShell. По сути, он запускает программу и сохраняет выходные данные в out_test.txt. Однако, когда я запускаю из Python, я получаю эту ошибку: FileNotFoundError: out_test.txt не найден. Итак, в основном скрипт Python перемещается к данным. = np.loadtxt(filename,skiprows=1), не дожидаясь, пока subprocess.call фактически сгенерирует файл. Файлы будут иметь разную длину, поэтому время ожидания будет разным, поэтому я не хочу добавлять время ожидания вручную (например, с помощью time.sleep(1)). Как я могу убедиться, что Python ожидает завершения subprocess.call? Спасибо!
В сети я вижу, что Python должен автоматически ожидать subprocess.call, но это не так. Я попробовал subprocess.run, но получил тот же результат.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -to-finish

Вернуться в «Python»