python - 在 python 中执行 C 程序?

标签 python c

我有这个 C 程序,至少我认为是(文件:spa.c、spa.h)。有什么方法可以在不向 Python 解释器传递额外参数的情况下从 Python 执行此脚本(如果没有,参数是什么?)

更新:感谢您的回复。源代码可以在 http://www.nrel.gov/midc/spa/#register 找到。

(请不要被 url 中的“注册”吓到,如果您填写表格,您可以立即下载文件(无验证邮件等)我会尝试您的建议并报告结果。

更新 2:我使用 gcc 编译了源代码,但现在它在尝试调用 () 时给了我一个被拒绝的权限,即使在以 root 身份运行 python 时也是如此(我在 Ubuntu 10:10 上) .

更新 3 [Errno 8] 执行格式错误

更新 4 好的,我让它工作了。程序使用 printf 输出值:

>>> call(['/path'])
Julian Day:    2452930.312847
L:             2.401826e+01 degrees
B:             -1.011219e-04 degrees
R:             0.996542 AU
H:             11.105902 degrees
Delta Psi:     -3.998404e-03 degrees
Delta Epsilon: 1.666568e-03 degrees
Epsilon:       23.440465 degrees
Zenith:        50.111622 degrees
Azimuth:       194.340241 degrees
Incidence:     25.187000 degrees
Sunrise:       06:12:43 Local Time
Sunset:        17:20:19 Local Time

谢谢大家!

最佳答案

没有C 脚本 这样的东西。如果您的意思是 C 程序,您需要在运行之前将 spa.cspa.h 编译成可执行文件。

如果您在 Linux 或 Mac OS X 中使用 GCC:

$ gcc -Wall spa.c -o spa

将为您提供一个名为 spa 的可执行文件。

之后,您可以使用 Python 脚本运行 spa 程序:

from subprocess import call
call(["./spa", "args", "to", "spa"])

关于python - 在 python 中执行 C 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376397/

相关文章:

c - 请解释书中的这一行 'The C Programming Language' Pg 192

c++ - 我应该下载哪个 Clang 编译器?

c - c 中的 dangling-else 问题到底是什么?

python - Pandas Groupby 对部分字符串进行计数

python - Pygame OpenGL 3D 立方体滞后

python - perision减少后按日期合并数据框

c - memchr 源代码中的长字边界对齐到底是什么?

c - 如何根据 C 中的状态机生成单个脉冲?

python - 从网络摄像头按钮获取信号

python - 如何加速 Python 中的网络爬行?