pexpect.run无法运行长命令

时间:2012-10-17 12:17:44

标签: python pexpect

我正在使用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 是否需要以某种奇特的方式拆分命令?

1 个答案:

答案 0 :(得分:1)

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

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

此外,如果你所有人都输出了这个命令,你应该看看subprocess模块。