Python子进程。读取其他进程写入文件的内容

时间:2013-12-23 13:53:01

标签: python subprocess

我有两个python程序。其中一个写入文件,另一个必须检查写入行是否是所需数据,我必须只检查最后写入的行。我必须使用子进程来完成此任务。有任何想法吗 ? 这就是我现在拥有的: 将内容写入文件的函数:

def write_num_time(NUM_TIMES, FILENAME):
    while NUM_TIMES > 0:
        with open(FILENAME, 'w') as f:
            f.write(str(randint(1,10)) + ' ' + time.strftime("%Y.%m.%d %H:%M:%S\n"))
        time.sleep(1)
        print(NUM_TIMES)
        NUM_TIMES = NUM_TIMES - 1

1 个答案:

答案 0 :(得分:1)

只需将输出从process1重定向到process2输入。

示例:

import subprocess
from subprocess import PIPE

proc1 = subprocess.Popen(some_programm, stdout=PIPE, ...) # The others arguments where omitted for brevity.
proc2 = subprocess.Popen(some_other_program, stdin=proc1.stdout, ...) # The others arguments where omitted for brevity.

然后在proc2实现中,您可以从输入中逐行读取。实施流程取决于您。

如果您还需要记录日期(我刚刚意识到您的功能适用于日期:D)您可以将该任务委派给接收数据的流程(在此示例中为proc2)。