2012-04-08 61 views
0

我正在开发一个程序在python下载文件列表。 将被命名为:批处理文件下载:名称生成器

2012-01-01-01.html 
2012-01-01-02.html 
... 
... 
2012-12-30-99.html 

问题是我不知道该文件是否存在。所以我要检查所有的网址从404 我怎样才能使发电机递增计数器为'year'-'month'-'date'-'num 要是再一个链路发生故障时跳过日期 如果特定月份的所有链接失败时跳过月 等 我可以只有当公司有没有更好的主意

wset_fail=[] 
for year in [2012,2011]: 
    for month in range(1,12): 
     for day in range(1,31): 
      for num in range(1,100): 
       check = str(year)+'-'+str(month)+'-'+str(day) 
       if check not in wset_fail: 
        link = generate_name(year,month,day,num) 
        if link!='': 
         if download(link)==False: 
          wset_fail.append(str(year)+'-'+str(month)+'-'+str(day)) 

它的工作,我需要的一些更好的解决方案

+1

一个简单的三个嵌套for循环与一个单一的工作。告诉我们你试过的是什么以及它失败的原因。 – 2012-04-08 06:55:57

+1

你想'范围(1,13)'和'范围(1,32)'。你也想重用'check'而不是重新计算'str(year)+ ...'。此外,可以删除“不在wset_fail中检查”的测试,因为在最内层的循环中所有的“check”值都是新的。 – EOL 2012-04-08 09:11:58

+0

检查检查特定文件的文件集是否已失败 – Sreevisakh 2012-04-09 07:13:18

回答

相关问题