如何从Python脚本调用可执行文件?

我需要从我的Python脚本执行该脚本。

可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。

fx@fx-ubuntu:~/Documents/projects/foo$ bin/bar -c somefile.xml -d text.txt -r aString -f anotherString >output

应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()?

谢谢,

Python运行时的错误仅是这一行。

$ python foo.py

bin/bar: bin/bar: cannot execute binary file

回答:

要执行外部程序,请执行以下操作:

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")。请注意,如果不需要,您不需要依赖子外壳将输出重定向到磁盘上名为“输出”的文件。我在这里展示如何直接将输出读取到您的python程序中而无需在其间插入磁盘。

以上是 如何从Python脚本调用可执行文件? 的全部内容, 来源链接: utcz.com/qa/414406.html

回到顶部