在for-in循环中添加暂停
问题描述:
我有一个访问网站超过100次的脚本,并且希望在每个项目之间添加一个小的延迟。此外,如果可能的话,可能会添加一个倒计时或进程栏来显示剩下的项目的状态或数量。代码示例如下;在for-in循环中添加暂停
import pandas as pd
urls = ['https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/440/vehicletype/car?format=csv',
'https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/441/vehicletype/car?format=csv',
'https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/442/vehicletype/car?format=csv',
'https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/443/vehicletype/car?format=csv',
'https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/445/vehicletype/car?format=csv',
'https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeIdYear/makeId/448/vehicletype/car?format=csv']
dfs = [pd.read_csv(url) for url in urls]
df = pd.concat(dfs, ignore_index=True)
df.to_csv('foo.csv')
答
import time
dfs = []
num = len(urls)
for i, url in enumerate(urls):
dfs.append(pd.read_csv(url))
print 'Process {}, {} left'.format(i+1, num-i-1)
time.sleep(2)
+0
太棒了!完美的作品! –
+0
@KyleRichards :) – galaxyan
阅读有关'tqdm'一个倒计时栏和'time.sleep'为暂停执行。 – user1190882
好奇 - 为什么你想添加一个暂停? – Parfait
@Parfait因为运行脚本在如此多的服务器请求后如此快地访问相同的服务器,服务器会阻止它。 –