Ich verwende Python 2.6.5 und damit noch optparse (depr. ich weiß).Nun habe ich einen Parameter "-i" für Inputfiles definiert. Da ich möchte, dass man mehrere Dateien angeben kann, ist als Aktion "append" gesetzt.
So weit so gut: Ich kann mehrere Eingabe Dateien übergeben:
Code: Alles auswählen
./script.py -i datei.dat -i datei2.dat
Code: Alles auswählen
./script.py -i *.dat -i data.raw
Code: Alles auswählen
./script.py -i data.dat data1.dat -i data.raw
: Weil die Shell die Pfadangabe expandiert, liest OptParse nur die erste Angabe und hält die zweite Angabe für einen Parameter (und keine Option).["data.dat", "data.raw"]
Nun wird die ganze Sache noch etwas komplizierter: Bei Langangaben (--input=*.dat statt -i *.dat), wird mir die Angabe unexpandiert übergeben! Ich habe mal in der Manpage des Globbings (unter Misc) nachgesehen: Da steht von diesem Verhalten nichts
Kurzum: Weiß jemand Rat? Ich kannte natürlich sagen: Eingabedateien mit UPE müssen in Anführungsstrichen stehen - dann lässt die Shell die Finger davon und ich kann das Ganze mit glob auswerten. Aber die Lösung ist ja nun nicht sonderlich kanonisch. Und lange Optionen finde ich jetzt auch nicht so toll.
Vielleicht kann mich ja jemand auf meinen Denkfehler bzw. eine schöne Lösung aufmerksam machen.
Danke schonmal!
brb