[英]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.