以预定的时间间隔从列表中打印 X 项
print X items from list at scheduled time intervals
我有一个包含一些数据(姓名、地址)的 json 数组,我想每五分钟打印一个姓名:到目前为止我已经得到了这个:
def get_data(i):
f = open('data.json' , 'r')
infos = json.load(f)
name = infos['people'][i]['name']
print(name)
i+=1
schedule.every(5).minutes.do(get_data, i=0)
while True:
schedule.run_pending()
time.sleep(1)
但这显然不起作用,因为每次 get_data 被调用时我都将 i 设置为零,有没有更好的方法来做到这一点?
您可以像这样将此函数包装在 class 中:
import schedule
import json
import time
class Run:
def __init__(self):
self.i = 0
def get_data(self):
with open('data.json') as f:
infos = json.load(f)
try:
name = infos['people'][self.i]['name']
print(name)
except IndexError:
print('No name for index:', self.i)
else:
self.i += 1
if __name__ == '__main__':
run = Run()
schedule.every(5).minutes.do(Run.get_data, run)
while True:
schedule.run_pending()
time.sleep(1)
我有一个包含一些数据(姓名、地址)的 json 数组,我想每五分钟打印一个姓名:到目前为止我已经得到了这个:
def get_data(i):
f = open('data.json' , 'r')
infos = json.load(f)
name = infos['people'][i]['name']
print(name)
i+=1
schedule.every(5).minutes.do(get_data, i=0)
while True:
schedule.run_pending()
time.sleep(1)
但这显然不起作用,因为每次 get_data 被调用时我都将 i 设置为零,有没有更好的方法来做到这一点?
您可以像这样将此函数包装在 class 中:
import schedule
import json
import time
class Run:
def __init__(self):
self.i = 0
def get_data(self):
with open('data.json') as f:
infos = json.load(f)
try:
name = infos['people'][self.i]['name']
print(name)
except IndexError:
print('No name for index:', self.i)
else:
self.i += 1
if __name__ == '__main__':
run = Run()
schedule.every(5).minutes.do(Run.get_data, run)
while True:
schedule.run_pending()
time.sleep(1)