Я запускаю этот код в цикле - в Python 3.6:
# previous code: copy certain files to the working folder
shellCmd = "myCmd " + file1 + " " + file2
# myCmd works on file1 and file2
result = subprocess.check_output(myCmd, shell=True)
# delete the files
Время от времени я получаю ошибку, вызванную отказом в доступе к некоторым файлам. Я предполагаю, что подпроцесс работает в фоновом режиме и цикл продолжается, порождая другие подпроцессы. Иногда это приводит к тому, что один подпроцесс пытается скопировать (или удалить) файлы, которыми myCmd все еще занят в другом подпроцессе.
Как мне остановиться и дождаться завершения subprocess.check_output ()?
Я видел, что subprocess.Popen имеет функцию wait (), но мне нужна строка результата из процесса myCmd, поэтому я хочу использовать subprocess.check_output ().
Но любое решение, которое (а) даст мне строковый вывод myCmd и (б) обеспечит последовательное выполнение подпроцессов, нормально.
Спасибо!