0

pexpect.run用来执行命令。见下文:

cmd = "grep -L killed /dir/dumps/*MAC-66.log"
output = pexpect.run(cmd)

当我运行它时,output等于:

grep: /dir/dumps/*MAC-66.log: No such file or directory

但是当我在我的 shell 中运行相同的命令时,它每次都有效。我没有看到问题。任何帮助表示赞赏!pexpect.run是否需要以某种奇特的方式拆分命令?

4

1 回答 1

1

你的 shell 正在解释 glob,pexpect 不是。您可以使用 python 的glob.glob()函数自己评估 glob,也可以通过 shell 运行它,例如:

cmd = "bash -c 'grep -L killed /dir/dumps/*MAC-66.log'"

此外,如果您所追求的只是此命令的输出,则应该检查该subprocess模块。

于 2012-10-17T12:37:17.293 回答