我有两个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
答案 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
)。