Seite 1 von 1

Mehrere Datein öffnen und bearbeiten

Verfasst: Donnerstag 31. Januar 2008, 11:53
von Sten Jantzen
Hallo zusammen,

ich bin noch recht neu im Python Universum und hätte da eine Frage zum Öfnnen von Dateien.

Situation:

Ein Ordner mit n XML Dateien mit verschiedenen Namen.
Diese sollen nacheinander geöffnet werden, dann eine Zeile hinzugefügt, geschlossen und in einem neuen Ordner abgespeichert werden.

Was ich aber nicht schaffe und auch nirgends etwas dazu gefunden habe ist, wie ich mehrere Dateien mit unterschiedlichem Namen nacheinander öffne um sie dann bearbeiten zu können.

Weiß da jemand Rat?

MfG
S. Jantzen

Verfasst: Donnerstag 31. Januar 2008, 12:01
von Jan-Peer
Hallo,

grundsätzliche Dinge wie Schleifen sind dir aber vertraut? Ansonsten schau dir mal die Funktion os.listdir() an.


Gruß

Jan-Peer

Verfasst: Donnerstag 31. Januar 2008, 12:14
von Sten Jantzen
Danke für die schnelle Antwort.

Ja Schleifen u.Ä. sind mir bekannt, habe mir auch die von dir vorgeschlagene Funktion angesehen, allerdings sucht die immer nach Verzeichnis/*.*

Gibt es etwas ähnliches das direkt nach *.xml suchen kann?

MfG
S.Jantzen

Verfasst: Donnerstag 31. Januar 2008, 12:16
von BlackVivi
Sten Jantzen hat geschrieben:Danke für die schnelle Antwort.

Ja Schleifen u.Ä. sind mir bekannt, habe mir auch die von dir vorgeschlagene Funktion angesehen, allerdings sucht die immer nach Verzeichnis/*.*

Gibt es etwas ähnliches das direkt nach *.xml suchen kann?

MfG
S.Jantzen
Kannst doch durch die Elemente von listdir iterieren und mit .endswith(".xml") schauen, ob's XML-Dateien sind oO!

Verfasst: Donnerstag 31. Januar 2008, 12:52
von Sten Jantzen
Habe es jetzt so ähnlich gelöst vielen Dank für die Hinweise!

Verfasst: Donnerstag 31. Januar 2008, 13:06
von BlackVivi
Nur mal als Einzeiler reingeworfen (gibt eine Liste zurück mit allen XML-Dateien im momentanen Verzeichnis)

Code: Alles auswählen

>>> xml_files = [x for x in os.listdir(".") if x.endswith(".xml")]
>>> xml_files
['bla.xml', 'blabla.xml', 'blalblalblalbl.xml', 'foo.xml', 'hohenhalde.xml', 'mi
au.xml']

Verfasst: Donnerstag 31. Januar 2008, 13:59
von BlackJack
Ansonsten gäbe es dafür auch noch das `glob`-Modul.

Code: Alles auswählen

In [419]: import glob

In [420]: glob.glob('*.xml')
Out[420]: ['Testdatei.xml', 'test.xml', 'new_catalog_ok.xml', 'input.xml']

Verfasst: Donnerstag 31. Januar 2008, 14:03
von Leonidas
``glob.glob()`` existiert.

Edit: Zu langsam. *grml*