Python:在条件为真时,在时间间隔内重复执行操作
我想做的是这样一件事:访问一个网站上的文件,读取它的内容,然后根据内容执行一些操作,直到内容显示要退出为止。这个过程的前提是,每次访问网站之前要等x秒钟,重新检查内容。
perform = True
while(perform):
data = urllib.urlopen('someurl')
data = data.read()
if(data == '0'):
dosomething()
elif(data == '1'):
#1 signifies to exit the loop
perform = False
else:
time.sleep(10)
但是这似乎总是无法实现。'Someurl'总是有值。有些人在谷歌上说这可能和睡眠函数有关。请帮帮我!
2 个回答
1
1) 你有没有试过检查一下从网址读取到的 data
是什么?比如,把它打印出来看看?
2) 如果数据确实是 '0' 或 '1',那么你就不会进入 else
的情况,这样 sleep()
就不会执行。这是个问题,因为这意味着你会立刻再去读取数据。数据可能不会有变化,而且网络服务器通常不喜欢你不停地请求同一个网址(它们会觉得你在试图攻击它们)。解决办法是:不要把 sleep()
放在 else
里面;把它放在和原来的 if
同一层级就行。你不需要 else
也能写出有效的代码。
3
这个:
import time
while True:
print "fetching"
time.sleep(10)
是一个最简单的测试案例,因为这个总是能正常运行,所以问题不可能出在 time.sleep
这个函数上。