Ich schreibe mein erstes Python-Befehlszeilenprogramm mit Hilfe von docopt und habe ein Problem festgestellt.So speichern Sie ein vorheriges Befehlszeilenargument
Meine Struktur ist wie folgt:
Usage:
my-tool configure
my-tool [(-o <option> | --option <option>)]
...
Ich versuche, einen Weg zu finden, my-tool -o foo-bar
zuerst laufen, und dann gegebenenfalls den Wert ‚foo-bar‘ in meine configure-Funktion übergeben, wenn ich my-tool configure
laufen weiter .
In pseduocode, das übersetzt so aus:
def configure(option=None):
print option # With the above inputs this should print 'foo-bar'
def main():
if arguments['configure']:
configure(option=arguments['<option>'])
return
...
Gibt es eine Möglichkeit diese Funktion zu erhalten, ohne das Argument Struktur zu verändern? Ich suche nach einem Weg zu vermeiden my-tool configure [(-o <option> | --option <option>)]
Wie aktualisieren Sie die Option vor dem Aufruf der 'configure' Funktion? ZB lesen Sie die Konfigurationsdatei, um die vorherigen Befehlsoptionen zu erhalten, und aktualisieren Sie dann die' option' Variable um die '-o' Option einzuschließen, falls vorhanden, Übergeben Sie es dann an die 'configure' -Funktion. – Enix
Die Frage ist * how * um vorherige CL-Argumente zu erhalten.Wenn der zweite Befehl 'my-tool configure' ausgeführt wird, ist