3

我有一个用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

感谢您的协助

4

1 回答 1

3

每个评论的答案是:

使用正斜杠'/usr/bin/app'

就个人而言,尽管我强烈考虑使用os.path.join or str.joinos.sep因此您不必记住斜线应该走哪条路。

http://docs.python.org/2/library/os.html
http://docs.python.org/2/library/os.path.html

于 2013-09-11T18:06:30.840 回答