【问题标题】:Add a pause bewteen a for-in loop在 for-in 循环之间添加暂停
【发布时间】:2018-03-24 13:36:52
【问题描述】:

我有一个访问网站超过 100 次的脚本,并且想在每个项目之间添加一个小的延迟。此外,如果可能,可能会添加一个倒计时或进程栏,显示状态或剩余项目数。代码示例如下;

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')                                                                                                        

【问题讨论】:

  • 阅读tqdm 了解倒计时条,了解time.sleep 了解暂停执行。
  • 好奇 - 为什么要添加暂停?
  • @Parfait 因为在这么多服务器请求之后运行脚本访问同一台服务器的速度如此之快,服务器阻止了它。

标签: python pandas csv for-in-loop


【解决方案1】:
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)

【讨论】:

  • 太棒了!完美运行!
  • @KyleRichards :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 2022-11-30
  • 2015-01-14
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多