kleines Problem mit optparse

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ein kleines Problem mit dem optparse-Modul: Wenn ich -h als Flag gebe, erhalte ich folgenden Output:

Code: Alles auswählen

options:
  -h, --help            show this help message and exit
  -fFORMAT, --format=FORMAT
                        use to specify file format
  -pPATH, --path=PATH   use to specify directory
D. h. zwischen -f und FORMAT befindet sich kein Leerzeichen - unabhängig davon wie lang ich den string in dest="format" tatsächlich mache. Warum nicht? Default ist doch mit Leerzeichen, oder? Wie kann ich das ändern? (Es schmeichelt ganz einfach dem Auge nicht.)
Ein Auszug aus dem dazugehörigen Skript:

Code: Alles auswählen

parser = OptionParser(usage=__doc__) 
parser.add_option("-f", "--format", action="store", type="string", dest="format", help="use to specify file format")
parser.add_option("-p", "--path", action="store", type="string", dest="path", help="use to specify directory")
Vielen Dank,
Christian
BlackJack

Kein Leerzeichen ist "normal". Wenn Du das ändern möchtest, dann musst Du schon im Code rumbasteln, also die `format_option()` Methode vom `IndentedHelpFormatter` geeignet überschreiben.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Danke für die Info: Wo steht das mit den Defaulteinstellungen? Ich kann es nirgendwo finden.

Natürlich werde ich nicht im Pythoncore rumfummeln, aber da ich im Moment an einer kleinen Batterie von Skripten fürs Batchprocessing von Daten schreibe, wäre es schon schön, wenn ich das Problemchen lösen könnte: Es erhöht einfach die Übersichtlichkeit. Außerdem liest sich die Beschreibung für das Modul schon so, als gäbe es an den entsprechenden Stellen Leerzeichen.

Gruß,
Christian
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

CM hat geschrieben: Es erhöht einfach die Übersichtlichkeit. Außerdem liest sich die Beschreibung für das Modul schon so, als gäbe es an den entsprechenden Stellen Leerzeichen.
Hi CM!

Ich fahre mit Python 2.4.1. Da ist schon als Standardeinstellung ein Leerzeichen zwischen der Kurzoption und der Metavar.

In dieser Version ist auch vorgesehen, dass man mit set_short_opt_delimiter einstellen kann, ob ein oder kein Leerzeichen verwendet wird. Die von mir durchsuchte Version von optparse ist 1.5a2.

http://optik.sourceforge.net/

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ah ja, Danke! Das habe ich gar nicht bedacht. Aus Kompatibilitätsgründen scheibe ich momentan unter 2.3. Aber in der Tat: Wenn ich das kurz mal für 2.4.1 umsetze sieht die Sache anders aus.
Na, dann kann ich wohl nichts machen ...

Gruß,
Christian
Antworten