如何使用Python调用C可执行文件

时间:2013-08-30 09:00:23

标签: python c

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

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

Per Comments答案是:

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

就个人而言,我会强烈考虑使用os.path.joinstr.joinos.sep,这样您就不必记住斜杠的走向。

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