Для запуска внешней программы сделайте следующее:
import subprocess
args = ("bin/bar", "-c", "somefile.xml", "-d", "text.txt", "-r", "aString", "-f", "anotherString")
#Or just:
#args = "bin/bar -c somefile.xml -d text.txt -r aString -f anotherString".split()
popen = subprocess.Popen(args, stdout=subprocess.PIPE)
popen.wait()
output = popen.stdout.read()
print output
И да, если ваша bin/bar
программа записала на диск некоторые другие файлы, вы можете открыть их как обычно с помощью open("path/to/output/file.txt")
. Обратите внимание, что вам не нужно полагаться на подоболочку, чтобы перенаправить вывод в файл на диске с именем «output», если вы этого не хотите. Здесь я показываю, как напрямую прочитать вывод в вашу программу на Python, не переходя на диск между ними.