как выполнить bash скрипт из python3 и сохранить результат в файл
Нужно выполнить bush скрипт из python3 как сторонний процесс и сохранить результат в файл (успешный он или ошибочный). Я пытаюсь сделать это так:
run_subprocess = subprocess.Popen(
['bash ' + '/home/user/script'],
cwd = '/home/user/case',
shell = True,
stdout='/home/user/out',
stderr='/home/user/err')
После запуска выходит ошибка:
AttributeError: 'str' object has no attribute 'fileno'
Что не так? Есть ли альтернативный способ решить данную задачу?
Ответы (2 шт):
Автор решения: snakeCascade
→ Ссылка
Вроде как всё легко настраивается через простой os.system(). Попробуй это:
import os
os.system("bash test.sh > output 2> errors &")
Автор решения: Vlad Anoxun
→ Ссылка
Попробуй через subprocess.check_output. Получаешь результат в переменной, а потом записываешь в файл.
subprocess.check_output(args, *, input=None, stdin=None, stderr=None, shell=False, universal_newlines=False, timeout=None) - выполняет команду и возвращает её вывод.