使用Python封装命令行工具

2024-10-01 09:15:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的遇到了一个问题,我希望有人能帮我解决。我试图在Python3.1中为名为spooky的命令行程序创建一个包装器。我可以像这样在命令行上成功运行这个程序:

$ spooky -a 4 -b .97

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

^{pr2}$

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

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

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

上面的代码也会失败,并且没有提供有用的错误。在

我的问题是:如何通过向命令行发送spooky -a 4 -b .97来让Python运行这个程序?如果您能提供任何帮助,我将不胜感激。提前谢谢。在


Tags: topath代码命令行程序错误usersdone
2条回答

尝试将您的命令制作成一个字符串:

cmd = 'spooky_path -a start -b end'
process = subprocess.Popen(cmd, shell=True)

你需要放下标准输出=子流程.管道. 这样做会将进程的stdout与Python的stdout断开,并使用大众传播()功能,如:

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参数:

^{pr2}$

也可以使用调用函数:

process = subprocess.call(cmd)

相关问题 更多 >