Jak dodać argumenty wiersza poleceń do skryptu Pythona

Jak dodać argumenty wiersza poleceń do skryptu Pythona

Jeśli opracowałeś skrypt lub aplikację Pythona, mającą na celu prowadzenie przede wszystkim w terminalnych emulatorach, a nawet aplikacjach GUI, dodanie argumentów wiersza poleceń może poprawić jego użyteczność, czytelność kodu, strukturę aplikacji i ogólną przyjazność dla użytkowników aplikacji dla użytkowników końcowych. Te argumenty wiersza poleceń są również nazywane „opcjami” lub „przełącznikami” i działają podobnie do argumentów, które zwykle widzisz w skryptach BASH i innych programach opartych na C / C ++.

Aby dodać argumenty do skryptów Python, będziesz musiał użyć wbudowanego modułu o nazwie „ArgParse”. Jak sama nazwa wskazuje, analizuje argumenty wiersza poleceń używane podczas uruchamiania skryptu lub aplikacji Python. Te przeanalizowane argumenty są również sprawdzane przez moduł „ArgParse”, aby upewnić się, że są one odpowiednie „typ”. Błędy są podnoszone, jeśli istnieją nieprawidłowe wartości argumentów.

Wykorzystanie modułu ArgParse można najlepiej zrozumieć za pomocą przykładów. Poniżej znajdują się próbki kodów, które zaczną zacząć od modułu ArgParse.

Przykład 1: Generuj argument i przesłanie pomocy

Rozważ próbkę kodu poniżej:

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
args = parser.parse_args ()

Pierwsze oświadczenie importuje moduł „ArgParse”. Następnie powstaje nowy instancja obiektu „ArgumentParser”, a krótki opis programu jest dostarczany jako argument. Obiekt ArgumentParser jest potrzebny do konwersji wartości argumentów wiersza poleceń na typy danych rozumiane przez Pythona. Odbywa się to metodą „parse_args” obiektu ArgumentParser, jak pokazano w ostatnim instrukcji.

Zakładając, że zapisałeś próbkę kodu podaną powyżej w pliku o nazwie „Test.py ”, uruchamianie poniższych poleceń zapewni Ci pomoc w zakresie pomocy związanej z programem.

$ ./test.Py -h
$ ./test.Py - -Help

Powinieneś uzyskać trochę wyjścia podobnego do tego:

Użycie: test.py [-h]
Program testowy.
Opcjonalne argumenty:
-H, -Help Pokaż tę wiadomość pomoc

Należy zauważyć, że do obsługi przeanalizowanych argumentów i konwersji na obiekty nie zostało dodane do próbki kodu wymienionego powyżej. Dlatego komunikaty o pomocy poszczególnych argumentów nie są pokazane na wyjściu. Po dodaniu logiki do obsługi wartości parsowanych argumentów w programie, komunikaty pomocy zaczną pokazywać opis poszczególnych argumentów.

Przykład 2: Obsługuj argument ciągu

Aby dodać argumenty dopuszczalne przez skrypt Python, musisz użyć metody „add_argument”. Spójrz na następujący kod:

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument („print_string”, help = "drukuje dostarczony argument.")
args = parser.parse_args ()
Drukuj (args.print_string)

Dodano nową instrukcję pokazującą użycie metody „add_argument”. Wszelkie argumenty dodane podczas uruchamiania skryptu będą traktowane jako obiekt „print_string” przez „ArgumentParser”.

Zauważ, że domyślnie metoda „add_argument” traktuje wartości pobrane z argumentów jako ciągów, więc nie musisz wyraźnie określać „typu” w tym przypadku. Wartość domyślna „brak” jest również przypisywana do dodanych argumentów, chyba że zastąpiona.

Ponownie spójrz na wiadomość o pomocy:

Użycie: test.py [-h] [print_string]
Program testowy.
Argumenty pozycyjne:
print_string drukuje dostarczony argument.
Opcjonalne argumenty:
-H, -Help Pokaż tę wiadomość pomoc

Jedna z linii na wyjściu mówi „argumenty pozycyjne”. Ponieważ żadne słowo kluczowe dotyczące argumentu nie jest zdefiniowane, obecnie argument jest traktowany jako „argument pozycyjny”, w którym zamówienie i pozycja dostarczonego argumentu ma bezpośredni wpływ na program. Argumenty pozycyjne są również obowiązkowe, chyba że ręcznie zmienisz ich zachowanie.

Aby zdefiniować i parsować opcjonalne argumenty, możesz użyć „-” (podwójnego Dash) i zmienić ich wartości domyślne za pomocą argumentu „domyślnego”.

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument ("-print_string", help = "drukuje dostarczony argument.", domyślnie =" losowy ciąg.")
args = parser.parse_args ()
Drukuj (args.print_string)

Teraz, kiedy uruchomisz „Testuj.skrypt py ”bez żadnego argumentu, powinieneś uzyskać„ losowy ciąg.”Jako wyjście. Możesz także opcjonalnie użyć słowa kluczowego „-print_string”, aby wydrukować dowolny wybrany ciąg.

$ ./test.PY -PRINT_SSTRING LINUXHINT.com Linuxhint.com

Zauważ, że możesz opcjonalnie argument obowiązkowy, używając dodatkowego argumentu „Wymagane = true”.

Na koniec możesz również zdefiniować skrótowe wersje argumentu za pomocą „-” (pojedyncza dysk), aby zmniejszyć gadatość.

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument ("-p", "--print_string", help = "drukuje dostarczony argument.", domyślnie =" losowy ciąg.")
args = parser.parse_args ()
Drukuj (args.print_string)

Uruchomienie następujące polecenie powinno dać ci ten sam wynik jak powyżej:

$ ./test.Py -p Linuxhint.com

Przykład 3: Obsługuj argument całkowitego

Aby obsłużyć argumenty wymagające wartości liczb całkowitych, musisz ustawić słowo kluczowe „Typ” na „INT”, aby umożliwić błędów sprawdzania poprawności i rzucania na wypadek, gdyby warunek nie był spełniony.

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument ("-p", "--print_string", help = "drukuje dostarczony argument.", type = int)
args = parser.parse_args ()
Drukuj (args.print_string)

Spróbuj uruchomić następujące polecenie:

$ ./test.Py -p Linuxhint.com

Powinieneś uzyskać taki błąd:

Użycie: test.py [-h] [-p print_string]
test.PY: Błąd: argument -p/-print_string: nieprawidłowa wartość int: 'Linuxhint.com '

Dostarczanie wartości całkowitej da prawidłowy wynik:

$ ./test.Py -p 1000 1000

Przykład 4: Uznaj się z prawdziwych i fałszywych przełączników

Możesz przekazywać argumenty bez żadnych wartości, aby traktować je jako prawdziwe i fałszywe flagi za pomocą argumentu „działania”.

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument ("-p", "--print_string", help = "drukuje dostarczony argument.", Action =" Store_true ")
args = parser.parse_args ()
Drukuj (args.print_string)

Uruchom poniższe polecenie, aby uzyskać prosty „prawdziwy” jako wyjście:

$ ./test.Py -p

Jeśli uruchomisz skrypt bez argumentu „-p”, zamiast tego zostanie przypisana wartość „fałszywa”. Wartość „Store_true” słowa kluczowego „Action” przypisuje wartość „prawdziwą” do zmiennej „print_string”, ilekroć argument „-p” jest wyraźnie określony, w przeciwnym razie Fałsz jest przypisany do zmiennej.

Przykład 5: Traktuj wartości argumentów jako listy

Jeśli chcesz uzyskać wiele wartości jednocześnie i przechowywać je na liście, musisz podać słowo kluczowe „Nargs” w następującym formacie:

importować ArgParse
Parser = argParse.ArgumentParser (Opis = 'Program testowy.')
Parser.add_argument ("-p", "--print_string", help = "drukuje dostarczony argument.", Nargs = '*')
args = parser.parse_args ()
Drukuj (args.print_string)

Uruchom następujące polecenie, aby przetestować powyższy kod:

$ ./test.Py -p „A” „B”

Powinieneś uzyskać takie dane wyjściowe:

[„A”, „B”]

Wniosek

Moduł „ArgParse” jest dość kompleksowy z mnóstwem opcji, aby dostosować zachowanie aplikacji wiersza poleceń i analizować wartości dostarczane przez użytkownika. Te przykłady dotykają tylko podstawowego użycia modułu „argParse”. W przypadku zaawansowanych i złożonych aplikacji możesz potrzebować różnych implementacji. Odwiedź oficjalną dokumentację, aby uzyskać pełne wyjaśnienie modułu.