2012-04-08 8 views
0

Ich entwickle ein Programm in Python, um eine Liste von Dateien herunterzuladen. Die heißen als:Batch File Downloader: Name Generator

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

Das Problem ist, ich weiß nicht, ob die Datei vorhanden ist. Also muss ich alle Urls check von 404 Wie kann ich einen Generator machen, der den Zähler erhöht für 'year'-'month'-'date'-'num wenn eine Verbindung ausfällt, dann überspringen Sie das Datum und wenn alle Verbindungen von bestimmten Monat nicht Monat überspringen und so weiter kann ich nur Code schreiben, der viel ‚ist zu haben, wenn die ist es eine bessere Idee

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

Seine Arbeits ich für einige bessere Lösung bin gefragt

+1

eine einfache drei verschachtelte for-Schleifen mit einem einzigen wenn funktionieren würde. Zeig uns, was du versucht hast und warum es fehlgeschlagen ist. –

+1

Sie wollen 'Bereich (1, 13)' und 'Bereich (1, 32)'. Sie möchten auch "check" wiederverwenden, anstatt "str (year) + ..." neu zu berechnen. Außerdem kann der Test 'check not in wset_fail' entfernt werden, da alle 'check'-Werte in der innersten Schleife neu sind. – EOL

+0

check prüft, ob der Satz von Dateien für eine bestimmte Datei bereits fehlgeschlagen ist – Sreevisakh

Antwort

Verwandte Themen