[英]Python for: loop won't pause?
好的,所以我有一个脚本,可以在给定文件名进行搜索时查找,移动和重命名文件。 我在Robotics文件夹中的所有文件夹中都编写了一个用于迭代器的包装程序,以使过程自动化。 这是代码:
#! /usr/bin/env python
import os
import sys
import time
files = [ ... Big long list of filenames ... ]
for item in files:
sys.stdout.write("Analyzing & Moving " + item + "... ")
os.system('python mover-s.py "' + item + '"')
sys.stdout.write("Done.\n")
print ""
print "All files analyzed, moved, and renamed."
现在,执行并完成原始脚本大约需要2秒钟,我想要它执行的是显示“ Analyzing&Moving what ....”,然后在脚本完成后显示“ Done”。 我的问题是消息和“完成”。 消息同时出现。 我在上面添加了一个小暂停,大约.25s,也是一样,但是它只是在显示“分析和移动任何东西……完成”的时间上增加了.25s。 基本上,为什么它不显示我的第一条消息,暂停,然后显示第二条消息? 因为现在它同时显示整行。 这可能是由于我对管道的了解不深而已。
在第一个write()
之后立即添加对sys.stdout.flush()
的调用。
您看到的行为与缓冲有关。 有关讨论,请参见sys.stdout.flush()方法的用法 。
....
for item in files:
sys.stdout.write("Analyzing & Moving " + item + "... ")
os.system('python mover-s.py "' + item + '"')
sys.stdout.write("Done.\n")
print ""
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.