Seite 1 von 1
Öffnen aller Dateien aus einem Pfad
Verfasst: Donnerstag 23. Februar 2006, 14:58
von keboo
Hallo Leute!
Hab gestern mit Python angefangen
Bin ganz begeistert von den Möglichkeiten.
Hab wieder mal ein Problem:
Ich habe eine unbestimmte Anzahl von Textdateien in einem Ordner liegen. In jeder Datei steht ein Wertepaar.
Wie kann ich mit einem Skript, alle Dateien öffnen und die darin enthaltenen Wertepaare in einer Liste zusammenführen?
Ich hoffe ich habe mich nicht zu kompliziert ausgedrückt.
Recht herzlichen Dank für eure Unterstützung.
Johannes
Verfasst: Donnerstag 23. Februar 2006, 15:11
von Buell
alle Dateinamen mit Erweiterung txt aus dem Pfad auslesen und in Liste schreiben, siehe dazu os.listdir glaube ich.
mit for schleife nacheinenander dateien aus oben erstellter liste öffnen und werte in neue liste schreiben.
sehr hilfreich dabei append zum hinzufügen eines neuen wertes in die liste.
jetzt solltest du dein problem gelöst bekommen...
Verfasst: Donnerstag 23. Februar 2006, 15:15
von Rebecca
Mit
bekommst du eine schleife ueber alle Eintrage im Verzeichnis ein/pfad.
Dateien oeffnen und lesen geht mit
Code: Alles auswählen
datei = open(eintrag, 'r')
inhalt = datei.readline()
datei.close()
eine Liste befuellen geht mit:
Verfasst: Donnerstag 23. Februar 2006, 15:16
von Rebecca
Ooh, da war jemand schneller

danke
Verfasst: Donnerstag 23. Februar 2006, 15:17
von keboo
Danke.
werds mal versuchen zu implementieren.
lg
Johannes
Problem
Verfasst: Donnerstag 23. Februar 2006, 15:28
von keboo
Code: Alles auswählen
import os
liste = []
for eintrag in os.listdir("C:\\python\\code\\2202_tests\\werte"):
datei = open(eintrag, 'r')
inhalt = datei.readline()
datei.close()
liste.append(inhalt)
print liste,
Das funktioniert irgendwie nicht:
Fehlermeldung lautet:
Traceback (most recent call last):
File "C:/Dokumente und Einstellungen/Gebert.Johannes/Desktop/python/code/2202_tests/open_several_files.py", line 5, in -toplevel-
datei = open(eintrag, 'r')
IOError: [Errno 2] No such file or directory: 'a.txt'
Es befinden sich 4 Dateien im Pfad: a.txt, b.txt, c.txt und d.txt
Bitte um Hilfe!
Danke
Johannes
Verfasst: Donnerstag 23. Februar 2006, 15:31
von Rebecca
Ach ja, und wenn du nur Textdateien oeffnen willst, kann dir
helfen.
Verfasst: Donnerstag 23. Februar 2006, 15:34
von Rebecca
War schon wieder jemand schneller...
naja, in eintrag steht zum beistpiel bla.txt, obwohl du wahrscheinlich
C:\\python\\code\\2202_tests\\werte\\bla.txt oeffnen willst.
Und in dem Verzeichnis, wo du das Skript ausfuehrst, gibt's dann kein bla.txt.
du musst dann os.path.join(pfad, bla.txt) verwenden
Verfasst: Donnerstag 23. Februar 2006, 15:35
von keboo
Hallo Rebecca!
Ich hab im Moment nur .txt Files im Suchordner.
Hast du den letzten Post nur vollständigkeitshalber gepostet, oder als Antwort auf meinen letzten Post?
Danke.
Johannes
Verfasst: Donnerstag 23. Februar 2006, 15:39
von Joghurt
"eintrag" enthält nur "a.txt". Deshalb musst du, wie rebecca es geschrieben hat, noch mit dem Pfad kombinieren.
Einfacher ist aber vielleicht
Code: Alles auswählen
import glob
for eintrag in glob.glob("C:\\pfad\\zu\\den\\dateien\\*.txt"):
...
dann enthält eintrag immer den kompletten Pfad
Verfasst: Freitag 24. Februar 2006, 14:45
von Rockstar
Code: Alles auswählen
import os
liste = []
pfad = "C:\\python\\code\\2202_tests\\werte\\"
for eintrag in os.listdir(pfad):
if os.path.isfile(pfad+eintrag):
datei = open(pfad+eintrag, 'r')
inhalt = datei.readline()
datei.close()
liste.append(inhalt)
print liste
So hätt ich gedacht.