我正在向iTunes发送视频项目。当我运行命令时,我得到一个类似于:
的输出$ command
[2013-01-09 11:02:14 PST] <main> DBG-X: 1%
[2013-01-09 11:02:15 PST] <main> DBG-X: 2%
[2013-01-09 11:02:16 PST] <main> DBG-X: 3%
...etc...
如何更新应用程序中的数据库字段以显示此交付的进度?我想我会使用类似stdout=subprocess.PIPE, stderr=subprocess.PIPE
的东西重定向到日志文件。
但是我如何实时更新数据库?
答案 0 :(得分:2)
我会这样做(可能还有其他更好的方式):
n
秒检查一次文件,并记住该文件中的最后一行。请注意,这只是几乎实时,因为您每隔n
秒只检查一次文件
<强>代码强>:
progress = 0
lastLine = ''
n = 5 # seconds
while progress < 100:
with open('path/to/logfile') as logfile:
for newLine in logfile:
pass
if newLine.strip() != lastLine:
lastLine = newLine.strip()
writeToDatabase(lastLine)
time.sleep(n)
希望这有帮助