Podstawy argparse
Analizuj argumenty wiersza poleceń
Podstawy argparse to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Dlaczego argparse?
Moduł argparse (z biblioteki standardowej) służy do tworzenia przyjaznych interfejsów wiersza poleceń. Analizuje argumenty, sprawdza ich typy i automatycznie generuje tekst pomocy.
import argparse
parser = argparse.ArgumentParser(description='A demo tool')
print(type(parser).__name__)Tworzenie parsera
Najpierw należy utworzyć obiekt ArgumentParser. Wartość description pojawi się w automatycznie wygenerowanej pomocy.
import argparse
parser = argparse.ArgumentParser(description='Greet a user')
print('parser ready')Argumenty pozycyjne
add_argument('name') definiuje wymagany argument pozycyjny. W tym przykładzie przekazujemy listę do parse_args, aby uruchomić kod bez prawdziwego wiersza poleceń.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args(['Alice'])
print('Hello,', args.name)Argumenty opcjonalne
Argumenty zaczynające się od -- są opcjonalnymi flagami. Należy podać wartość default, która zostanie użyta, gdy użytkownik pominie daną flagę.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--greeting', default='Hi')
args = parser.parse_args(['--greeting', 'Hey'])
print(args.greeting)
print(parser.parse_args([]).greeting)Argumenty z określonym typem
Należy użyć type=int (lub na przykład float), aby argparse konwertował i sprawdzał wartość. Nieprawidłowe dane wejściowe powodują wyświetlenie jasnego komunikatu o błędzie.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args(['--count', '5'])
print(args.count * 2)Flagi logiczne
action='store_true' tworzy flagę, której domyślną wartością jest False, a po jej podaniu wartością staje się True. Doskonale nadaje się to do przełączników takich jak --verbose.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
print(parser.parse_args(['--verbose']).verbose)
print(parser.parse_args([]).verbose)Krótkie i długie nazwy
Argumentowi można nadać zarówno krótką, jak i długą formę, na przykład -n i --name. Obie ustawiają ten sam atrybut.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default='world')
print(parser.parse_args(['-n', 'Sam']).name)Dozwolone wartości
Za pomocą choices można ograniczyć zbiór dozwolonych wartości. argparse odrzuca wszystko, czego nie ma na liście.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['fast', 'slow'], default='fast')
print(parser.parse_args(['--mode', 'slow']).mode)Wiele wartości za pomocą nargs
nargs='+' zbiera jedną lub więcej wartości do listy, dzięki czemu można wygodnie akceptować kilka danych wejściowych naraz.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args(['a.txt', 'b.txt', 'c.txt'])
print(args.files)Wymagane argumenty opcjonalne i pomoc
Należy dodać required=True, aby wymusić podanie opcjonalnej flagi, oraz help=, aby opisać ją na wygenerowanym ekranie użycia.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--id', required=True, type=int, help='record id')
args = parser.parse_args(['--id', '7'])
print('id is', args.id)Kompletne małe narzędzie
Połączenie argumentu pozycyjnego, opcji z określonym typem i flagi tworzy mały, ale rzeczywisty interfejs wiersza poleceń.
import argparse
parser = argparse.ArgumentParser(description='Repeat a message')
parser.add_argument('message')
parser.add_argument('--times', type=int, default=1)
parser.add_argument('--shout', action='store_true')
args = parser.parse_args(['hello', '--times', '2', '--shout'])
text = args.message.upper() if args.shout else args.message
for _ in range(args.times):
print(text)Szybki sprawdzian
Sprawdź swoje zrozumienie modułu argparse.
Podsumowanie
Poznałeś podstawy argparse:
ArgumentParserz argumentami pozycyjnymi i argumentami--optional.- Parametry
type,default,choicesirequiredsprawdzają dane wejściowe. action='store_true'służy do obsługi flag, anargsdo tworzenia list.- Tekst pomocy jest generowany automatycznie.
Następny temat: podkomendy i bardziej rozbudowana obsługa opcji.
Często zadawane pytania
Czy lekcja „Podstawy argparse” jest bezpłatna?
Tak — pełny tekst „Podstawy argparse” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podstawy argparse”?
Analizuj argumenty wiersza poleceń Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podstawy argparse”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy argparse
- Podkomendy i opcje
- Biblioteka Click
- Bogate dane wyjściowe terminala