gpt4 book ai didi

python - 帮助用 Python 封装命令行工具

转载 作者:行者123 更新时间:2023-11-30 23:50:16 25 4
gpt4 key购买 nike

我真的遇到了一个问题,希望有人能帮助我。我正在尝试在 Python3.1 中为名为 spooky 的命令行程序创建一个包装器。我可以在命令行上成功运行该程序,如下所示:

$ spooky -a 4 -b .97

我对 spooky 的第一次 Python 包装尝试如下所示:

import subprocess

start = "4"
end = ".97"

spooky_path = '/Users/path/to/spooky'
cmd = [spooky_path, '-a', start, '-b', end]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
process.wait()
print('Done')

上面的代码打印Done,但不执行程序spooky

接下来我尝试在命令行上执行程序,如下所示:

$ /Users/path/to/spooky -a 4 -b .97

上面的代码也失败了,并且没有提供任何有用的错误。

我的问题是:如何通过向命令行发送 spooky -a 4 -b .97 来让 Python 运行该程序?我非常感谢您能提供的任何帮助。提前致谢。

最佳答案

您需要删除 stdout=subprocess.PIPE。这样做会断开进程的标准输出与 Python 的标准输出的连接,并使其可使用 Popen.communicate() 函数检索,如下所示:

import subprocess

spooky_path = 'ls'
cmd = [spooky_path, '-l']
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = process.communicate()[0]
print "Output:", output
process.wait()
print('Done')

要使其直接打印,您可以在不使用 stdout 参数的情况下使用它:

process = subprocess.Popen(cmd)

或者您可以使用调用功能:

process = subprocess.call(cmd)

关于python - 帮助用 Python 封装命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208648/

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