2016-03-19 6 views
-1

Gibt es eine Möglichkeit, den größten Wert in jeder Textdatei in einem Verzeichnis in einer Liste zu speichern? Ich habe mehrere Textdateien im gleichen Format, wobei jeder Wert auf einer andere Leitung ist:Den Maximalwert in allen Dateien in einem Verzeichnis finden

(erste score)

(zweite score)

(dritt score)

Ich will sparen der größte dieser drei Ganzzahlen in eine Liste und das gleiche für alle anderen Dateien im Ordner. Ist das möglich?

+0

ja, es gibt einen Weg – SteveL

+0

wow das ist sehr hilfreich ... – Eric1108

Antwort

0

Das ist ein Weg, es zu tun.

import os 

scores = [] 
for path in os.listdir("path"): 
    if not os.path.isfile(path): 
     continue 
    with open(path) as scores_file: 
     scores.append(max(int(n.strip()) for n in scores_file)) 

Sie iterieren alle Dateien im Verzeichnis, die Linien Streifen, verwandeln sie in einen int und nehmen Sie die max aus ihm heraus.

+0

Es erzeugt einen Fehler (FileNotFoundError), obwohl ich den gleichen Pfad früher in meinem Programm, wo ich eine Liste aller Dateinamen in der Ordner, also glaube ich nicht, dass der Pfad falsch ist. Ich bin etwas durcheinander. Das Problem ist diese Zeile: "mit open (Pfad) als scores_file:". – Eric1108

+0

@Eric 'os.listdir()' erstellt eine Liste aller Dateien im Programm. Hast du es auf dem Verzeichnispfad gemacht? – Bharel

+0

Was meinst du mit "im Programm"? Der Pfad, den ich verwendet habe, ist der Pfad zu dem Ordner mit den darin enthaltenen Dateien. – Eric1108

Verwandte Themen