将一个子进程的stdout映射到另一个子进程的stdin,但未产生预期结果

2024-10-01 07:36:16 发布

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

我正在尝试处理一个日志文件,从文件末尾提取一些信息。日志文件很大,我要找的信息在文件的末尾。 我使用python子进程方法来实现这一点,如下所示:

p1.subprocess.Popen(['tail', '-n', '100', logFile], stdout=PIPE)
p2.subprocess.Popen(['grep', 'Output[ 1 ].*Perf'], stdin=p1.stdout,
                    stdout=PIPE, stderr=PIPE)
procOut,procErr = p2.communicate()
print procOut # Nothing gets printed

不知道我是不是做错了什么。当我在shell中执行这两个管道命令时,我得到了我想要的输出。不过,当我试图用Python实现它的时候就不会了。在


Tags: 文件方法信息进程stdoutgreptailsubprocess