2016-11-21 5 views
-1

Ich muss Dateien im Verzeichnis nach Name mit Intervall 0-400 lesen. Es bedeutet, dass Programm liest Dateien mit Namen von 0 bis 400.Wie liest man Dateien aus dem Verzeichnis nach Namen?

Jetzt habe ich diesen Code:

with open(file) as xml: 
     doc = xmltodict.parse(xml.read()) 

So habe ich versucht:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

Problem ist, dass ich benutze:

if __name__ == '__main__': 
    files = glob.glob("data*") 
    pool = Pool() 
    pool.map(open_xml, files) 
    c.close() 

I übergeben Array files zu map Funktion. Wie kann ich stattdessen 0-400 Array-Dateien übergeben?

+0

Was jetzt geschieht, das ist Ihre Erwartung nicht erfüllt. Erkläre das Problem, das du gerade hast. Wenn Fehler auftreten, zeigen Sie den Traceback an. – idjaw

+0

Zuerst sollte es für Num im Bereich (0,400) sein: Dateiname = num + ".vtb". Zweitens möchten Sie vielleicht erklären, wo Sie stecken geblieben sind, oder die Leute wissen nicht, was sie antworten sollen. – Musen

+0

Also, ich lese Dateien als: 'files = glob.glob (" data/* ")' nachdem ich dieses Ergebnis an 'map' übergeben habe:' pool.map (open_xml, files) '. Also, ich muss Dateien von 0 bis 400 erhalten und diese an "map" übergeben – Goga

Antwort

1

Nicht sicher, was Sie fragen. Aber der Code, den Sie zu schreiben versucht haben, funktioniert nicht, und ich nehme an, Sie wollen wissen, wie es funktioniert. Also, Sie schrieb:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

Stattdessen versuchen:

for num in range(0,400) 
    filename = str(num) + ".vtb" 
    doc = xmltodict.parse(filename.read()) 

Wenn dies nicht tun, was Sie wollen, dann ist dein Problem liegt woanders.

EDIT

Ihr Kommentar Lesen, was ich verstehe ist, dass Sie diese 0 zu 400 Dateien map übergeben wollen. Dann brauchen Sie nur eine Liste zu erstellen, das alle die Pfade zu verwenden:

filenames = [] 
for num in range(0,400) 
    filenames.append(str(num) + ".vtb") 

dann:

pool.map(open_xml, filenames) 
+0

Siehe aktualisierte Frage – Goga

+0

@Goga Aktualisierte Antwort. –

+0

Also, Schleife sollte draußen sein? – Goga

Verwandte Themen