告诉python等待/暂停for循环

时间:2014-06-25 13:19:23

标签: python loops

我有一个python程序导航我到一个网站,其功能我定义为nav(a,b),在这个网站上我将下载一些pyfits数据用于另一个脚本。对于我拥有的目录中的每一组(a,b),该站点都有一个不同的pyfits文件。

我想知道是否可以使用for循环遍历此目录,并且每次使用nav(a,b)函数时,告诉python在我下载文件时暂停,然后当我告诉它时再次恢复。我之前在idl中做过类似的事情,但是不知道如何使用python。

否则,我想我坚持运行程序200次,每次都取代(a,b)值,这将永远。

7 个答案:

答案 0 :(得分:13)

如果您想等待手动信号继续,请等待用户按Enter:

Python 2:

raw_input("Press Enter to continue...")

Python 3:

input("Press Enter to continue...")

如果你可以在python代码中下载文件,那就不要为每个文件做手动任务。

答案 1 :(得分:5)

为什么不尝试使用while循环等待下载完成?

for ... :
    nav(a,b)
    while downloading_not_finished:
         time.sleep(X)

因此,每个X时间段都会测试一个条件,并在下载部分完成之前再次进行测试。

答案 2 :(得分:3)

您可以使用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

答案 3 :(得分:1)

好的,这是在python中暂停的两种方法。

1)您可以使用输入功能。

#Python 2
raw_input("Downloading....")

#Python 3
input("Downloading....")

这将暂停程序,直到用户按下Enter等..

2)您可以使用time.sleep()函数。

import time
time.sleep(# of seconds)

这将暂停python脚本多少秒。

答案 4 :(得分:1)

对于 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)

答案 5 :(得分:0)

为什么不使用输入功能?它将暂停程序,直到提示已关闭/填写。

答案 6 :(得分:-1)

最好的解决方案是在现有的 while 循环中再放一个 while 循环:

while True:
#do something
asleep = True
while (asleep):
    if cv2.waitKey(1) == 32: #Wait for space key  
        asleep = False