[英]Tell Python to wait/pause a 'for' loop
我有一個 Python 程序,它使用我定義為 nav(a, b) 的函數將我導航到一個網站,在這個網站上,我將下載一些 pyfits 數據以用於另一個腳本。 對於我擁有的目錄中的每組 (a,b),該站點都有一個不同的 pyfits 文件。
我想知道我是否可以使用for
循環遍歷這個目錄,每次使用 nav(a, b) 函數時,告訴 python 在我下載文件時暫停,然后在我告訴它時再次恢復。 我以前在IDL 中做過類似的事情,但不知道如何使用 Python。
否則我想我會被困在運行程序 200 次,每次都替換 (a, b) 值,這將永遠持續下去。
如果要等待手動信號繼續,請等待用戶按Enter :
蟒蛇2:
raw_input("Press Enter to continue...")
蟒蛇3:
input("Press Enter to continue...")
如果您可以下載 python 代碼中的文件,請執行此操作,而不是為每個文件執行手動任務。
您可以使用time.sleep()暫停執行 t 秒:
import time
time.sleep(1.3) # Seconds
演示:
import time
print "Start Time: %s" % time.ctime()
time.sleep(5)
print "End Time: %s" % time.ctime()
Start Time: Tue Feb 17 10:19:18 2009
End Time: Tue Feb 17 10:19:23 2009
使用while
循環,等待下載完成:
for ... :
nav(a,b)
while downloading_not_finished:
time.sleep(X)
因此,每 X 時間段測試一個條件,並再次測試,直到下載部分完成。
好的,這里有兩種在 Python 中暫停的方法。
您可以使用輸入功能。
# Python 2 raw_input("Downloading....") # Python 3 input("Downloading....")
這將暫停程序,直到用戶按下Enter等。
您可以使用 time.sleep() 函數。
import time time.sleep(number of seconds)
這將使 Python 腳本暫停您想要的任何秒數。
對於設計中的Python shell :
import sys
from time import sleep
try:
shell = sys.stdout.shell
except:
print('Run It In Shell')
dots = '........';
shell.write('Downloading')
sleep(0.5)
for dot in dots:
shell.write(dot)
sleep(0.1)
shell.write('\n')
sleep(0.4)
shell.write('Saving Files')
sleep(0.5)
for doot in dots:
shell.write(dot)
sleep(0.1)
shell.write('\n')
sleep(0.4)
對於控制台中的 Python:
from time import sleep
print('Downloading')
sleep(1)
print('Saving Files')
sleep(1)
使用輸入功能。 它將暫停程序,直到提示已關閉/填寫。
最好的解決方案是在現有的 while 循環中放置另一個 while 循環:
while True:
#do something
asleep = True
while (asleep):
if cv2.waitKey(1) == 32: #Wait for space key
asleep = False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.