2017-10-12 11 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