我有一个用 c 编写的链接列表的编译二进制文件。我将可执行文件作为/usr/bin/app 放在/usr/bin/中,其中 app 是可执行文件的名称。这是使用 gcc 编译的。
任何人都可以帮助我使用 python 脚本调用此(应用程序)。
我在下面编写了一个脚本来执行此操作,但似乎出错了。我是 python 的新手,对此有非常基础的知识。我只是在探索 python 的特性。
脚本代码如下:
#!/usr/bin/env python
import subprocess
proc = subprocess.Popen(['\usr\bin\app'],
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE
)
(out, err) = proc.communicate()
print out
错误如下:
Traceback (most recent call last):
File "./LinkedList.py", line 7, in <module>
stderr = subprocess.PIPE
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
谢谢你的帮助
最佳答案
根据评论,答案是:
使用正斜杠'/usr/bin/app'
虽然我个人会强烈考虑使用 os.path.join
或 str.join
和 os.sep
所以你没有记住斜杠应该走哪条路。
http://docs.python.org/2/library/os.html
http://docs.python.org/2/library/os.path.html
关于python - 如何使用Python调用C可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528901/