【发布时间】:2014-12-23 21:12:45
【问题描述】:
我有一个进程(agxp)接收数据并将它们写入一个文件,另一个进程将数据发送到另一个进程。
当 agxp 启动时,它应该会立即产生一些输出。我希望主进程阻塞,直到它在文件中看到 agxp 输出的第一行。
我正在通过比较文件的状态来检查第一行是否已写入文件,但它们总是相同的。所以我陷入了while循环。为什么会这样?
rvListen_AGX = "tibrvlisten -service " + agxService + " -network " + agxNetwork + " -daemon " + domain
agxf = open(self.AGX_logFileName, 'w')
agxstat = os.stat(self.AGX_logFileName)
agxp = subprocess.Popen(rvListen_AGX.split(), stdout = agxf, bufsize=0)
while os.stat(self.AGX_logFileName) == agxstat:
print agxstat
print os.stat(self.AGX_logFileName)
stxf.flush()
sleep(0.1)
【问题讨论】:
-
您可以在主进程中设置
stdout=PIPE并写入agxf。
标签: python-2.7 subprocess