1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python调用可执行文件 如何从Python脚本调用可执行文件?

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

时间:2019-06-05 17:25:49

相关推荐

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

I need to execute this script from my Python script.

Is it possible? The script generate some outputs with some files being written. How do I access these files? I have tried with subprocess call function but without success.

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

The application "bar" also references to some libraries, it also create the file "bar.xml" besides the output. How do I get access to these files? Just by using open()?

Thank you,

Edit:

The error from Python runtime is only this line.

$ python foo.py

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

解决方案

For executing the external program, do this:

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

And yes, assuming your bin/bar program wrote some other assorted files to disk, you can open them as normal with open("path/to/output/file.txt"). Note that you don't need to rely on a subshell to redirect the output to a file on disk named "output" if you don't want to. I'm showing here how to directly read the output into your python program without going to disk in between.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。