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
Öffnen aller Dateien aus einem Pfad
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...
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...
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Mit
bekommst du eine schleife ueber alle Eintrage im Verzeichnis ein/pfad.
Dateien oeffnen und lesen geht mit
eine Liste befuellen geht mit:
Code: Alles auswählen
for eintrag in os.lisdir("ein/pfad")
Dateien oeffnen und lesen geht mit
Code: Alles auswählen
datei = open(eintrag, 'r')
inhalt = datei.readline()
datei.close()
Code: Alles auswählen
liste = []
liste.append(inhalt)
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,
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
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Ach ja, und wenn du nur Textdateien oeffnen willst, kann dir
helfen.
Code: Alles auswählen
dateiname = "bla.txt"
dateiname.endswith(".txt")
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
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
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
Zuletzt geändert von Rebecca am Donnerstag 23. Februar 2006, 15:37, insgesamt 1-mal geändert.
"eintrag" enthält nur "a.txt". Deshalb musst du, wie rebecca es geschrieben hat, noch mit dem Pfad kombinieren.
Einfacher ist aber vielleichtdann enthält eintrag immer den kompletten Pfad
Einfacher ist aber vielleicht
Code: Alles auswählen
import glob
for eintrag in glob.glob("C:\\pfad\\zu\\den\\dateien\\*.txt"):
...
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