2016-06-13 5 views
0

Hi im Wesentlichen funktioniert mein Skript unten, aber wenn es einmal geloopt und über alle Dateien gezählt wird, macht es es dann immer wieder. Gibt es etwas Seltsames in meinem Code? ich auch die Verzeichnisse, Dateien mit und Namen Variablen im Code jede Hilfe SieWarum wiederholt mein Skript die Dateien? Python

for root, dirs, files in os.walk(input): 
    for name in files: 

     if "fvds" in root: 
      count = 0 
      for gz in glob.glob(path.join(root, "*.gz")): 
       print "Processing", gz 
       with gzip.open(gz) as gzfile: 
        count += len(gzfile.readlines()) 
       print "%i features read" % count 
       text_file.write("%i features read" % count+"\n") 
+0

Auf welchem ​​Betriebssystem laufen Sie, gibt es rekursive Verzeichnisverknüpfungen? Haben Sie versucht, root, dirs, dateien auszudrucken? Was ist 'input'? –

+0

Unter Windows 7 scheinen alle anderen Variablen in Ordnung zu sein und werden an anderer Stelle im Skript verwendet. Beim Ausdruck von root sieht es so aus, als ob mein Code gerade so funktioniert, dass er alles über einen Dover tut. –

+0

Ist es möglich, dass, was auch immer diesen Code aufruft, es wiederholt anruft? Was passiert, wenn Sie dieses Codesegment nehmen und es in einem Python-Interpreter ausführen? –

Antwort

-1

Sie Ihre gzip-Dateien in dem Ordner, den Sie zu Fuß über öffnen wäre toll, geben könnte, ist dies Erstellen einer anderen Datei, damit die Schleife durchlaufen wird, wenn die Dateien nicht vorhanden sind. Dies wird eine weitere Iteration von os.walk auslösen, sobald die neue Datei eintrifft.

+0

Würde die Person, die diese Antwort abgelehnt hat, einen Grund angeben? –

+0

Weil das gzip.open Dateien AFAIK nicht erzeugt. –

+0

Das ist, was ich dachte, sicherlich, dass temporäre GZ-Objekt nicht übergangen werden kann? –

Verwandte Themen