Ich schreibe eine Shell für ein Projekt von mir, die im Prinzip Befehle analysiert, die so aussehen:
COMMAND_NAME ARG1="Langer Wert" ARG2 = 123 ARG3 = [email protected]
Mein Problem ist, dass Pythons Kommandozeilen-Bibliotheken (getopt und optparse) dazu zwingen, vor den Argumenten '-' oder '-' zu verwenden. Dieses Verhalten entspricht nicht meinen Anforderungen.
Irgendwelche Ideen wie kann das gelöst werden? Eine vorhandene Bibliothek dafür?
Sie können sie mit shlex.split () aufteilen, das die angegebenen Werte verarbeiten kann und dies ganz einfach mit einem sehr einfachen regulären Ausdruck parsen kann. Oder Sie können nur reguläre Ausdrücke zum Teilen und Parsen verwenden. Oder verwenden Sie einfach split ().
%Vor%Versuchen Sie, " Standards für Befehlszeilenschnittstellen "
Konvertieren Sie Ihre Argumente (wie von Thomas vorgeschlagen) in das OptionParser-Format.
%Vor% Wenn Befehlszeilenargumente nicht in sys.argv oder einer ähnlichen Liste, sondern in einer Zeichenkette enthalten sind, verwenden Sie (wie Ironfrogy vorgeschlagen) shlex.split()
.
Ohne ziemlich intensive Operation auf optparse oder getopt, ich glaube nicht, dass Sie sie vernünftig dazu bringen können, Ihr Format zu analysieren. Sie können jedoch leicht Ihr eigenes Format parsen oder es in etwas übersetzen, was opparse behandeln könnte:
%Vor%Tags und Links python parsing command-line arguments shell