Seite 1 von 1
Verzeichnisinhalt auslesen
Verfasst: Dienstag 22. Juli 2008, 18:22
von Crazed
Hallo,
Ich würde gerne alle Dateien eines Ordners auslesen und diese z.b in einer Sequenz speichern. Aber ich finde einfach keine Funktion / Modul mit der sowas möglich ist.
Über os und os.path bin ich schon gestolpert aber irgendwie habe ich da nichts gefunden was mir bei meinem Problem behilflich sein könnte. Ich würde mich sehr freuen wenn mir jemand helfen kann!
Noch bessere wäre es eigentlich wenn ich einfach alle python scripte in einem Ordner mit einer __init__.py Datei ausgeben lassen könnte.
Z.b:
MfG,
CracKPod
Verfasst: Dienstag 22. Juli 2008, 18:30
von peddy
Verfasst: Dienstag 22. Juli 2008, 19:49
von lunar
Code: Alles auswählen
def find_modules(directory):
return [os.path.join(directory, f) for f in os.listdir(directory) if f.endswith(os.extsep + 'py')]
Verfasst: Dienstag 22. Juli 2008, 20:42
von BlackJack
Sollte man vielleicht noch auf .pyc und .pyd erweitern.
Verfasst: Mittwoch 23. Juli 2008, 00:13
von Leonidas
BlackJack hat geschrieben:Sollte man vielleicht noch auf .pyc und .pyd erweitern.
Und ``.so``, Shared Objects. Dabei sollte man noch ``.so``s rausfiltern, die nicht als Python-Modul geladen werden können.
Verfasst: Mittwoch 23. Juli 2008, 10:24
von CM
Leonidas hat geschrieben:Und ``.so``, Shared Objects. Dabei sollte man noch ``.so``s rausfiltern, die nicht als Python-Modul geladen werden können.
Wie macht man das (ohne probeweise zu importieren)? Geht das?
Gruß,
Christian
Verfasst: Mittwoch 23. Juli 2008, 11:59
von Leonidas
CM hat geschrieben:Wie macht man das (ohne probeweise zu importieren)? Geht das?
Man könnte in die Symboltabelle gucken, die ganzen ``Py*`` Symbole gehören zur C-API. Ist noch die Frage ob es ein Symbol gibt, das jedes Python-C-Modul enthält.
Natürlich ist die Methode nicht 100% sicher, aber ich denke nicht, dass jemand seine Symbole zufällig mit ``Py`` prefixt

Verfasst: Mittwoch 23. Juli 2008, 12:13
von CM
Ok, danke. Ich stimme Dir zu: solche Symbole wird niemand "einfach mal so" nutzen.
Ob ein Symbol gibt, dass jedes Python-C-Modul enthält? Vielleicht PyObject*? Aber das ist nur ein Schuss ins Blaue.
Vielen Dank für die neue Einsicht, die ich bekommen habe,
Christian
Verfasst: Mittwoch 23. Juli 2008, 14:58
von birkenfeld
Jede shared library, die als Python-Modul geladen werden kann, hat eine exportierte Funktion ``"init" + modulname``. (Ja, das ist unschön. Ab Python 3 heißt es daher auch "PyInit_" + modulname.)