0

我想用 pexpect 做类似的事情

echild = pexpect.spawn('/bin/bash -c "sysinfo -v | grep "SCM"')
fout = file('/home/kiva/release_file.txt' , 'w+')
child.logfile = fout

问题是我想将该命令输出到一个文本文件中,但我必须启动一个 shell,因为我们不能在 spawn() 中使用管道。bash shell 不理解 sysinfo -v 并抱怨它。

你们有什么想法或知道一种方法可以在不打开 bash 终端的情况下将所需的输出放入文件中吗?我可以通过只使用 spawn() 方法而不使用 grep 来解决问题,但我想要完全匹配,因此 grep 是必要的。

谢谢

4

1 回答 1

1

从您的简短示例中,我看不出为什么您特别需要使用 pexpect 来实现这一目标。我会走的Popen路。这是一个可能有用的链接:

更换外壳管道 - Popen

于 2012-10-13T19:11:07.640 回答