Alle Dateien aus einem Verzeichnis öffnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
absolutanon
User
Beiträge: 17
Registriert: Freitag 27. April 2007, 19:43

Hi,

Ich möchter gerne ein Programm schreiben, welches alle Dateien aus einem gewissen Verzeichniss öffnet und dann mittels readlines(oder so ähnlich) in eine liste einfügt.
Bisher kenne ich nur den Befehl open(), und da muss man einen fixen Dateinamen eingeben.

alle Dateien weisen folgendes Muster auf:
CL Log 2007-11-05 13.25.14.txt

je nach Datum ändern sich halt die letzten stellen.

Es gibt bestimmt ein kluges Kerlchen, was mir helfen kann :)

Danke im Voraus
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Code: Alles auswählen

>>> import os
>>> os.listdir("/")
['srv', 'opt', 'initrd.img', 'dev', 'tmp', 'mnt', 'root', 'cdrom', 'usr', 'proc', 'data', 'sbin', 'boot', 'initrd', 'vmlinuz', 'var', 'lost+found', 'etc', 'media', 'lib', 'bin', 'sys', 'windows', 'home']
>>> 
/ oder halt C:\ oder andere Verzeichnisse.

Die Funktion listet alle Datein und Ordner im angegebenen Pfad.

mit os.path.isdir("PATH") und os.path.isfile("PATH") kannst du checken ob ein Pfad eine Datei oder ein Ordner ist.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

absolutanon hat geschrieben:CL Log 2007-11-05 13.25.14.txt
Hi absolutanon!

Willkommen im Python-Forum!

Es gibt natürlich mehrere Möglichkeiten. Eine davon ist die hier:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import fileinput
import glob

filenames = glob.glob("J:\\Ablage\\CL Log *.txt")
lines = []
# hoffentlich sind es nicht so viele Zeilen. ;-)
for line in fileinput.input(filenames):
    lines.append(line.strip())
Das hier ist vielleicht etwas einfacher zu verstehen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import glob

filenames = glob.glob("J:\\Ablage\\CL Log *.txt")
lines = []
for filename in filenames:
    f = file(filename, "rU")
    for line in f:
        lines.append(line.strip())
    f.close()
- fileinput: http://docs.python.org/lib/module-fileinput.html
- glob: http://docs.python.org/lib/module-glob.html
- file/open: http://docs.python.org/lib/built-in-funcs.html#l2h-27

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
absolutanon
User
Beiträge: 17
Registriert: Freitag 27. April 2007, 19:43

Juchu, ihr habt mir sehr geholfen!
Danke euch beiden!
Antworten