我有一个python程序导航我到一个网站,其功能我定义为nav(a,b),在这个网站上我将下载一些pyfits数据用于另一个脚本。对于我拥有的目录中的每一组(a,b),该站点都有一个不同的pyfits文件。
我想知道是否可以使用for循环遍历此目录,并且每次使用nav(a,b)函数时,告诉python在我下载文件时暂停,然后当我告诉它时再次恢复。我之前在idl中做过类似的事情,但是不知道如何使用python。
否则,我想我坚持运行程序200次,每次都取代(a,b)值,这将永远。
答案 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