Передайте файл в качестве входных данных в программу и сохраните его вывод, используя библиотеку sh в python - PullRequest
0 голосов
/ 12 ноября 2019

Я не совсем понимаю, как именно нам следует использовать библиотеку python sh, в частности, sh.Command(). По сути, я хочу передать input_file_a в program_b.py и сохранить его вывод в другом каталоге как output_file_b, как мне добиться этого, используя библиотеку sh в python?

1 Ответ

0 голосов
/ 12 ноября 2019

Если вы имеете в виду перенаправление ввода и вывода, то смотрите здесь (вход) и здесь (выход) соответственно. В частности, похоже, что для «перенаправления» стандартного ввода необходимо передать в качестве аргумента фактические байты (например, прочитать их заранее), в частности, следующее должно работать в соответствии с их документацией (не проверено, так как у меня нет / работа с sh- пожалуйста, дайте знать, если это работает для вас / исправьте все, что отсутствует):

import sh
python3 = sh.Command("python3")
with open(input_file_a, 'r') as ifile:
    python3("program_b.py", _in=ifile.read(), _out=output_file_b)

Обратите внимание, что может потребоваться указать аргумент search_paths для sh.Command для его поиска python. Также может потребоваться указать полный путь к файлу program_b.py или os.chdir() соответственно.

...