Нет необходимости в &
: команда запускается в отдельном процессе и выполняется независимо.
Если вы хотите дождаться завершения процесса, используйте wait()
:
process = subprocess.Popen('find / > tmp.txt', shell = True)
exitcode = process.wait()
if exitcode == 0:
# successful completion
else:
# error happened
Если ваша программа может сделать что-то значимое за это время, вы можете использовать poll()
, чтобы определить, завершился ли процесс.
Кроме того, вместо записи выходных данных во временный файл и последующего чтения из вашей программы на Python, вы можете напрямую читать из канала. Подробнее см. Документацию subprocess
.