2017-10-12 173 views
1

我有一个访问网站超过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')                           
+0

阅读有关'tqdm'一个倒计时栏和'time.sleep'为暂停执行。 – user1190882

+0

好奇 - 为什么你想添加一个暂停? – Parfait

+0

@Parfait因为运行脚本在如此多的服务器请求后如此快地访问相同的服务器,服务器会阻止它。 –

回答

3
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