Ich habe Argparse und Python-Fire des Befehlszeilen-Argumentverwaltungsmoduls anhand der Anzahl der Codes und der Verarbeitungszeit verglichen
argparse
Holen Sie sich kurz vor dem Importieren von argparse die aktuelle Zeit und messen Sie die Verarbeitungszeit. If __name__ == '__ main __':
hat eine große Menge Code und say
wird dreimal wiederholt. Nicht klug.
import time
start = time.time()
import argparse
def say():
print(f"Von Anfang an{time.time()-start}Sekunden sind vergangen")
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("--say",action="store_true")
args = parser.parse_args()
if args.say:
say()
Führen Sie diese Ausführung mit dem folgenden Befehl aus
$python3 argparse_test.py --say
Die Ausgabe ist
"0.01373600959777832 Sekunden sind seit dem Start vergangen"
Die Verarbeitungsgeschwindigkeit ist schnell
python-fire
Im Vergleich zu argparse ist die Codemenge in if __name__ == '__ main __':
nur eine Zeile
import time
start = time.time()
import fire
def say():
print(f"Von Anfang an{time.time()-start}Sekunden sind vergangen")
if __name__ == '__main__':
fire.Fire()
Mit dem folgenden Befehl ausführen
python3 fire_test.py say
Die Ausgabe ist
"0,7563726902008057 Sekunden sind seit dem Start vergangen"
Das Laden von Python-Fire dauert ungefähr 0,7 Sekunden, ist aber einfach