gpt4 book ai didi

python - 将 python 中的参数传递给 c 可执行文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:55 25 4
gpt4 key购买 nike

我有一个 C 可执行文件,其工作原理如下:

./avg filename opt1 opt2 opt3 

例如:

./avg one.dat 1 1 -1

返回类似

的内容
 127.504            2.244375804433813           1.111195552742103 blks: 500

当我尝试从 python 代码中调用它时,我尝试过:

import os
os.system("./avg one.dat 1 1 -1")

以及

import subprocess
#args = ("./avg","one.dat","1","1","-1")
args = ("./avg one.dat 1 1 -1")
popen = subprocess.Popen(args, stdout=subprocess.PIPE)
popen.wait()
output = popen.stdout.read()
print output

两者都不起作用,并且可执行文件没有足够的参数传递给可执行文件。它应该至少有 4 个选项。

任何帮助将不胜感激,提前致谢。

最佳答案

在读取子进程的输出之前,您不能wait() wait 等待子进程终止,但子进程被阻止写入其输出! subprocess.check_output 简化了读取进程的标准输出,因此您可以将 Popenwaitread 替换为

output = subprocess.check_output(['./avg', 'one.dat', '1', '1', '-1']) 

并且 args = ("./avg","one.dat","1","1","-1") (或上面的列表)是正确的方法去做吧;每个参数都需要是可迭代中的单独元素。

关于python - 将 python 中的参数传递给 c 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35846636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com