У меня есть мастер-скрипт на python, который использует subprocess.check_call
для запуска еще пары небольших скриптов.
Я не хочу видеть вывод этих меньших скриптов, поэтому я использую stdout=DEVNULL
Я могу получить returncode
, поймав CalledProcessError
, но я бы хотел отследить пропущенное сообщение, если сценарий оканчивается, скажем sys.exit('my exit message')
Я не могу уловить это сообщение - возможно ли это даже в Python? Я бы предпочел не писать в файл, чтобы прочитать сообщение о выходе.
Это то, что я пробовал в моей master.py
:
import subprocess
try:
subprocess.check_call('python scripttoberun.py', shell=True, stdout=subprocess.DEVNULL)
except subprocess.CalledProcessError as e:
print(e.args)
print(e.output)
print(e.stderr)
print(e.returncode)
print(e.cmd)
и по моему scripttoberun.py
:
import sys
print('starting... ')
sys.exit('im quitting')
но я не могу уловить сообщение 'im quitting
?
Я вижу только этот вывод:
(1, 'python scripttoberun.py')
None
None
1
python scripttoberun.py
Возможно ли это?
Большое спасибо!