重新开始下载api csv文件Python
如果url超时失败,我想创建一个函数来下载文件。我的问题是url超时,因为有时候csv文件比它需要更多的时间,所以我需要不断尝试下载。我在功能上添加了重新启动点,然后重新开始下载api csv文件Python,python,csv,Python,Csv,如果url超时失败,我想创建一个函数来下载文件。我的问题是url超时,因为有时候csv文件比它需要更多的时间,所以我需要不断尝试下载。我在功能上添加了重新启动点,然后失败…,但它只尝试一次 28行是超时失败时的行 def main(): este_mes('https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=31/12/2017&fecha_fin={}'.form
失败…
,但它只尝试一次
28
行是超时失败时的行
def main():
este_mes('https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=31/12/2017&fecha_fin={}'.format(fecha) + '&intipo_id=16&informe_id=955&o=csv')
este_mes_pais('https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=01/01/2018&fecha_fin={}'.format(fecha) + '&intipo_id=16&informe_id=752&o=csv')
f = open("este_mes_pais.csv")
numlines = len(f.readlines())
if numlines <= 28:
print "FAIL, reintentando..."
este_mes_pais('https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=01/01/2018&fecha_fin={}'.format(fecha) + '&intipo_id=16&informe_id=752&o=csv')
else:
print "este_mes_pais Descargado"
def main():
埃斯特梅斯酒店https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=31/12/2017&fecha_fin={}.format(fecha)+'&intipo_id=16&informe_id=955&o=csv')
埃斯特梅斯派斯酒店https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=01/01/2018&fecha_fin={}.格式(fecha)+'&intipo_id=16&informe_id=752&o=csv')
f=开放(“este_mes_pais.csv”)
numlines=len(f.readlines())
如果numlines一个简单的while
循环和True
条件就可以了。如果行数超过28行,则中断循环(请注意,可以不用使用迭代器读取整个文件),否则打印错误消息并保持循环运行:
while True:
este_mes_pais('https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=01/01/2018&fecha_fin={}'.format(fecha) + '&intipo_id=16&informe_id=752&o=csv')
with open("este_mes_pais.csv") as f:
#numlines = len(f.readlines()) # classic approach
# faster if the file is big, won't read more than 29 lines
numlines = sum(next(f,None) is not None for _ in range(29))
if numlines <= 28:
print "FAIL, reintentando..."
else:
break # OK, get out of the loop
为True时:
埃斯特梅斯派斯酒店https://a.net/admin/adnet/pub/stats/informe.csv?fechashortcut_id=0&fecha_inicio=01/01/2018&fecha_fin={}.格式(fecha)+'&intipo_id=16&informe_id=752&o=csv')
打开(“este_mes_pais.csv”)作为f:
#numlines=len(f.readlines())#经典方法
#如果文件很大,读取的行数不会超过29行,则速度会更快
numlines=sum(对于范围(29))中的uu,next(f,None)不是None)
如果numlines正常,但是如果numlines,循环将重新启动下载。break
在行数大于28时退出循环。请尝试。