Seite 1 von 1

Frage zum Argparser

Verfasst: Montag 30. April 2012, 10:40
von marvel82
Hallo liebe Community,

ich hoffe ihr könnt mir bei meinem kleinen Problem weiterhelfen. Ich möchte gerne das über die Kommandozeile mehrere Dateien aus einem Ordner und dessen Unterordner automatisch eingelesen werden und mir danach als Liste zur Verfügung stehen.

Ich stelle mir das folgendermassen vor:

script.py c:\ordner\*.txt

Somit würden alle Dateien mit der Endung "txt" in dem angegebenen Ordner gesucht und als Listenargument gespeichert werden. Kann der argparser so etwas von Haus aus oder muss ich das selber implementieren ?

Re: Frage zum Argparser

Verfasst: Montag 30. April 2012, 11:08
von sma
Unter Unix kümmert sich die Shell um das Auflösungen von "*" (und anderen Wildcard-Zeichen). Unter Windows musst du's AFAIK selbst machen. Schau dir mal das "glob"-Modul an. Das sollte ungefähr so funktionieren:

Code: Alles auswählen

import sys, glob

for arg in sys.argv:
    for name in glob.glob(arg):
        mach_was_mit(name)
Stefan

Re: Frage zum Argparser

Verfasst: Montag 30. April 2012, 11:25
von marvel82
Hallo,

danke erstmal für die schnelle Beantwortung meiner Frage. Ich arbeite mit einem Windows 7 Betriebssystem. Könntest du eventuell ein kleines Codebeispiel angeben. Muss ich es also selber implementieren ?

Re: Frage zum Argparser

Verfasst: Montag 30. April 2012, 11:35
von /me
marvel82 hat geschrieben:Könntest du eventuell ein kleines Codebeispiel angeben.
Da ist doch eins.

Haben wir möglicherweise deine Ausgangsfrage falsch verstanden?

Re: Frage zum Argparser

Verfasst: Montag 30. April 2012, 12:32
von JonasR
Das argparse Modul kann so etwas von sich aus nicht, es dient nur zum behandeln der Parameter.
Du kannst aber mit dem argparse den übergebenen Pfad an eine Funktion weitergeben die das Ganze abhandelt.
Wie die aussehen könnte wurde ja bereits geschrieben.

Re: Frage zum Argparser

Verfasst: Montag 30. April 2012, 13:18
von jbs
Hast du die Dokumentation zu argparse und glob gelesen?

Es sollte die Fragen klären, wofür die einzelnen Funktionen gedacht sind und überhaupt können.