Jedną z cech Pythona jest to, że towarzyszy mu bateria w zestawie: posiada bogatą i przystosowywalną standardową bibliotekę, która wyróżnia go wśród innych dialektów programowania do komponowania treści dla linii direct. W każdym razie, w przypadku, gdy komponujesz zawartość dla linii zamówienia, w tym momencie również musisz dać przyzwoity interfejs linii kierunku, który możesz zrobić z biblioteką Pythona argparse.

Czym jest Interfejs Linii Kierunkowej?

Interfejs linii poleceń (inaczej nazywany CLI) jest sposobem na współpracę z treścią linii bezpośredniej. Python współpracuje z kilkoma różnymi bibliotekami, które umożliwiają tworzenie interfejsu typu order line dla zawartości, jednak standardową drogą do tworzenia CLI w Pythonie jest właśnie biblioteka Python argparse.

Biblioteka Python argparse została zwolniona jako główny aspekt standardowej biblioteki z Pythonem 3.2 w dniu 20 lutego 2011. Została ona przedstawiona wraz z Python Upgrade Proposition 389 i jest obecnie standardową metodą tworzenia CLI w Pythonie, zarówno w formie 2.7 jak i 3.2+.

Ten nowy moduł został zwolniony z handlu bardziej znanymi modułami getopt i optparse, ponieważ były one nieadekwatne w odniesieniu do niektórych istotnych punktów.

Biblioteka Pythona argparse:

$ ls

dcdb_20180201.sg4 mastro35.sg4 otwory.sg4

dcdb_20180201.si4 mastro35.si4 otwory.si4

dcdb_20180201.sn4 mastro35.sn4 otwarcia.sn4

Zezwala na wykorzystanie sporów pozycyjnych

Pozwala na dostosowanie oparzenia przedrostka do własnych potrzeb

Obsługuje zmienne ilości parametrów do samodzielnego wyboru

Obsługuje podpolecenia (Podstawowy parser wiersza polecenia może wykorzystywać inne parsery wiersza polecenia, opierając się na pewnych argumentach).

Zanim zaczniesz, musisz zdać sobie sprawę jak działa interfejs wiersza polecenia, więc otwórz terminal na swoim komputerze i wykonaj polecenie ls, aby w ten sposób odzyskać rekordy zawarte w obecnym indeksie:

Jak powinno być oczywiste, w obecnym katalogu jest wiele dokumentów, jednak kierunek nie przywrócił dużej ilości danych o tych rekordach.

Na szczęście, nie trzeba szukać innego programu, aby uzyskać bardziej ekstrawaganckie uporządkowanie dokumentów zawartych w katalogu przepływu. Nie trzeba też samemu zmieniać kolejności ls, ponieważ otrzymuje on interfejs linii kierunku, czyli tylko wiele tokenów (zwanych contentions), które można wykorzystać do zaprojektowania przebiegu tego kierunku.

Obecnie próbuje się wykonać kolejność ls jeszcze raz, ale z dodaniem wyboru – l do linii kierunku jak w modelu pod spodem:

$ ls -l

łącznie 641824

-rw——- 1 sztab dave’a 204558286 5 marca 2018 dcdb_20180201.sg4

-rw——- 1 sztab dave’a 110588409 5 Mar 2018 dcdb_20180201.si4

-rw——- 1 sztab dave’a 2937516 5 marca 2018 r. dcdb_20180201.sn4

-rw——- 1 sztab dave’a 550127 27 Mar 2018 mastro35.sg4

-rw——- 1 sztab dave’a 15974 11 Gen 17:01 mastro35.si4

-rw——- 1 sztab dave’a 3636 27 Mar 2018 mastro35.sn4

-rw——- 1 sztab dave’a 29128 17 kwietnia 2018 r. otwarcia.sg4

-rw——- 1 sztab dave’a 276 17 kwietnia 2018 r. otwarcia.si4

-rw——- 1 sztab dave’a 86 18 kwietnia 2018 r. otwarcia.sn4

W tym momencie wydajność jest zupełnie inna. Kolejność została przywrócona tona danych o zgodach, właścicielu, gromadzeniu i wielkości każdego dokumentu oraz o zajętości całego rejestru na tablicy.

To jest na tej podstawie, że wykorzystałeś interfejs linii zamówienia ls kierunku i określił – l wybór, który upoważnia długi układ, niezwykłą konfigurację, która przynosi znacznie więcej danych dla każdego dokumentu zapisanego.

Żeby zapoznać się z tym tematem, zamierzasz sporo miejsca poświęcić na kontrowersje, alternatywy i parametry, więc powinniśmy natychmiast wyjaśnić to sformułowanie:

Spór jest samotną częścią linii prostej, ograniczoną spacjami.

Alternatywa jest specyficznym rodzajem kontrowersji (lub częścią kontrowersji), która może zmienić zachowanie linii porządkowej.

Parametr jest specyficznym rodzajem contention, który daje dodatkowe dane do samodzielnego wyboru lub zamówienia.

Pomyśl o towarzyszącym mu kierunku:

$ ls – l – s – k/var/log

W tym modelu, masz pięć unikalnych argumentów:

ls: nazwa kierunku, który wykonujesz

– l: wybór mający na celu wzmocnienie znaczącej pozycji w dół

– s: wybór drukowania przydzielonego rozmiaru każdego zapisu

– k: wybór wielkości w kilobajtach

/var/log: parametr, który daje dodatkowe dane (sposób nachylenia) do kierunku

Zwróć uwagę, że w przypadku, gdy masz różne alternatywy w samotnej linii zamówień, w tym momencie możesz połączyć je w samotną rywalizację, jak ta:

$ ls – lsk/var/log

Masz tu tylko trzy pretensje:

ls : nazwa zlecenia, które wykonujesz

– lsk: trzy różne wybory, które musisz wzmocnić (połączenie – l, – s, i – k)

/var/log: parametr, który daje dodatkowe dane (sposób nachylenia) do zamówienia

Kiedy korzystać z interfejsu linii kierunkowej

Ponieważ rozumiesz, co to jest interfejs linii kierunku, możesz zastanawiać się, kiedy jest to mądra myśl, aby wykonać jeden w swoich projektach. Ogólną wskazówką jest to, że w przypadku, gdy musisz dać łatwy w użyciu sposób radzenia sobie z projektowaniem swojego programu, w tym momencie powinieneś rozważyć interfejs kierunkowej linii, a standardową metodą jest wykorzystanie biblioteki Pythona argparse.

Niezależnie od tego, czy robisz skomplikowany program do składania zamówień, który wymaga zapisu układu, w przypadku, gdy musisz dać klientowi szansę na wskazanie, który dokument projektowy wykorzystać, to mądrą myślą jest uznanie tej zachęty poprzez stworzenie bezpośredniego interfejsu liniowego z biblioteką Python argparse.

Najskuteczniejsza metoda wykorzystania biblioteki Python argparse do stworzenia bezpośredniego interfejsu liniowego (Direction Line Interface)

Korzystanie z biblioteki Python argparse ma cztery etapy:

Importowanie biblioteki Python argparse

Zrób parser

Dodawanie uznaniowych i pozycyjnych argumentów do parsera

Wykonaj .parse_args()

Po wykonaniu .parse_args(), otrzymujemy obiekt przestrzeni nazw, który zawiera prostą właściwość dla każdej informacji otrzymanej z linii kierunku.

Aby zobaczyć te cztery etapy szczegółowo z modelem, co powiesz na stworzenie programu o nazwie myls.py, który porządkuje rekordy zawarte w obecnym katalogu. Oto potencjalny użytek z twojego interfejsu linii zamówień bez użycia biblioteki Python argparse:

# myls.py

import os

sysy importowe

jeśli len(sys.argv) > 2:

print(‘You have specified too many arguments’)

sys.exit()

jeśli len(sys.argv) < 2:

print(‘You need to specify the path to be listed’)

sys.exit()

input_path = sys.argv[1]

jeśli nie os.path.isdir(input_path):

print(“Podana ścieżka nie istnieje”)

sys.exit()

print(‘\n’.join(os.listdir(input_path)))

Jest to możliwa implementacja interfejsu wiersza poleceń dla Twojego programu, który nie korzysta z biblioteki argumentów Pythona, ale jeśli spróbujesz go uruchomić, zobaczysz, że działa:

$ python myls.py

Musisz określić ścieżkę, która ma być wymieniona

$ python myls.py /mnt /proc /dev

Podał pan zbyt wiele argumentów

$ python myls.py /mnt

dir1

dir2

Jak widzisz, skrypt działa, ale wyjście jest zupełnie inne niż to, którego oczekiwałbyś od standardowego wbudowanego polecenia.

Zobaczmy teraz, jak biblioteka Pythona argparse może ulepszyć ten kod:

# myls.py

# Importuj bibliotekę argparse

importowany towar jest niespójny

import os

sysy importowe

# Stwórz parser

my_parser = argparse.ArgumentParser(description=”List the content of a folder”)

# Add the arguments

my_parser.add_argument(‘Path’),

metavar=”path”,

type=str,

help=”the path to list”)

# Wykonaj metodę parse_args()

args = my_parser.parse_args()

input_path = args.Path

jeśli nie os.path.isdir(input_path):

print(“Podana ścieżka nie istnieje”)

sys.exit()

print(‘\n’.join(os.listdir(input_path)))

Kod bardzo się zmienił wraz z wprowadzeniem biblioteki Python argparse.