。
我需要每 10 秒从文件中读取一个变量,直到这个变量 var != "0"
此时我想停止循环。
所以我正在尝试用time.sleep
做一个 while 循环来检查文件,但我无法在循环外修改var
因为它只在 while 循环内发生变化:
while var == "0":
file =open("/net/live.txt", "r")
var = file.read()
file.close()
if var == "0":
time.sleep(10) #wait 10 seconds and query again
else:
file2 =open("/net/live2.txt", "w")
file2.write(var)
file2.close()
time.sleep(10)
print var #var is unequal "0" so stop while loop
如果你在Unix上,你可以使用信号模块:
import signal, sys
# your function as signal handler
def handler(signum, frame):
with open("/net/live.txt", "r") as file
var = file.read()
file.close()
if var != '0':
with open("/net/live2.txt", "w") as file2
file2.write(var)
file2.close()
print var
# install handler
signal.signal(signal.SIGALRM, handler)
# emit SIGALRM after 10 secs
signal.setitimer(signal.ITIMER_REAL, 10)
# do other stuff
i = 1
while True:
if i % 100000 == 0:
print i
i += 1
这应该可以满足您的期望。 您可以在此处阅读有关信号的更多信息:https://docs.python.org/2/library/signal.html
Windows用户将不得不使用Windows本身中的现有库之一,即多媒体库提供定时函数,如果找到来自其他开发人员的实现,则在此处