我有一个用c编写的链表的编译二进制文件。我将可执行文件放在/ usr / bin /中作为/ usr / bin / app,其中app是可执行文件的名称。这是使用gcc编译的。
任何人都可以帮我用python脚本调用这个(app)。
我在下面编写了一个脚本来执行此操作,但似乎给出了错误。我是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
感谢您的帮助
答案 0 :(得分:3)
Per Comments答案是:
使用正斜杠'/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