Python

Pythoni käsurea parsimise õpetus

Pythoni käsurea parsimise õpetus
Sõelumine on tekstide rea analüüsimine, et teada saada, mida programm peaks antud käskudega tegema. Kompilaatorile või tõlgile teadaoleva andmestruktuuri ülesehitamiseks jagatakse tekst väikesteks tükkideks, mida tuntakse märgidena. Täitmise tulemuseks on lõpptulemus. Pythoni kasutatakse sageli keelena käsuridade hõlpsaks sõelumiseks. Selles juhendis kasutatakse seda spetsiaalset moodulit, mis on Pythoniga kaasas, ja see on tuntud kui argparse. Argparse'i eripära on see, et seda on üsna lihtne kasutada, kasutajasõbralik, saadaval Pythoniga ja see aitab hõlpsasti luua käsurea liideseid.

Järgmine juhend näitab, kuidas kasutada argparse'i Ubuntu koos Python3-ga ja seega veenduge, et mõlemad oleksid enne jätkamist hõlpsasti kättesaadavad. Kui Python3 pole saadaval, saab selle installida järgmise kahe käsurea abil:

sudo apt-get värskendus
sudo apt-get install python3.6

Oluline süntaks

Selle juhendi eesmärk on visandada argparse põhijooned ja selle mõnede võimaluste kasutamine. Argparse nõuab käskude sisestamiseks Pythoni ja märkmikku. Ubuntul on oma märkmik, mida nimetatakse tekstiredaktoriks ja millele pääseb juurde Ubuntu kriipsu kaudu. Käsud täidetakse terminali kaudu.

  1. Käivitage tekstiredaktor Ubuntu Dashi kaudu.
  2. Sisestage järgmised kaks rida oluliste koodidena. Esimene rida impordib argparse mooduli koodilõiguks, teine ​​aga argumendi parseri objekti, mis sisaldab kogu teavet, mida on vaja käskude sõelumiseks Pythoni andmetüüpidesse. import argparse
    parser = argparse.ArgumentParser ()
  3. Argumentide stringide objektideks teisendamiseks kasutage järgmist käsku. Tavaliselt objekt on instantiseeritud ja omistatud muutujale, kuid see pole vajalik. parser.parse_args ()
  4. Programmi saab käivitada Linuxi terminalis python3 kaudu järgmise käsuga. python3 pscript.py

Rakenduse kirjelduse kuvamine

Rakenduse kirjelduse parameeter peab märkima, milleks rakendus on mõeldud. Kui käsku help kasutatakse koos pythoni skriptiga, kuvatakse rakenduse kirjeldus koos programmis kasutatavate saadaolevate lippudega.  Rakenduse kirjelduse märkimiseks tuleb kasutada järgmist rida.

parser = argparse.ArgumentParser (kirjeldus = 'rakenduse kirjeldus')

Kirjelduse kuvamine lõpus (epiloog)

Kirjelduseks saab epiloogi kuvada lõpus koos epiloogiparameetriga. Nagu kirjeldus, tuleb ka see täpsustada funktsioonis argumentParser.

Kuidas argumente kasutada

Argumendid on määratletud tähisega add_argument () funktsioon. See täpsustab, milliseid positsioonilisi argumente / argumente tuleb Pythoni skriptiga kasutada. Vaikimisi aktsepteerib programm positsiooniargumendina -help lippu, kuid eelmainitud funktsiooni abil saab lisada rohkem. Rakendusele saab argumente lisada mitmel viisil.

Üksikpositsiooniline argument

Ühe positsiooni argument tagab, et programm aktsepteerib ainult ühte argumenti. Järgmises näites märgib see argumendina bld; seega saab programmi käivitamisel positsioonilise argumendina kasutada ainult bld. Kui argument puudub, viskab programm vea hoiatussõnumiga „liiga vähe argumente“. Asukohaargumendi eripära on see, et seda ei pea programmile argumentide andmisel terminalis märkima.

parser.add_argument ("bld")

Positiivne argument teatud tüüpi

add_argument () võtab mitte ainult ühe, vaid ka mitu argumenti, nagu on näha järgmises näites. Kui esitatakse mitu argumenti, tuleb need vormindada järgmiselt. Esimene argument määratleb positsioonilise argumendi nime, teine ​​on selle tüüp, st väärtuse tüüp, mis aktsepteeritakse programmi argumendina, viimane on kirjelduse jaoks, mis kuvatakse ainult abilipu kasutamisel.

Järgmisel ekraanipildil on see kujutatud, kuidas programm keeldub mis tahes integraalse väärtuse aktsepteerimisest positsiooni argumendina. Siin saab nüüd esitada ainult täisarvu.

parser.add_argument ('bld', tüüp = int,
help = "on vaja täisarvu")

Valikuline positsiooniline argument teatud tüüpi

Järgmine käsurida on sama mis ülaltoodud, välja arvatud see muudab positsioonilise argumendi valikuliseks parameetriga nargs; seega saab kasutaja selle programmi käivitamisel ära jätta. Kuid kui argument esitati, peab see olema õiges andmetüübis või muidu ei jätkata tavapärase sõelumisega.

parser.add_argument ('bld', tüüp = int, nargs = '?",
help = 'See väli on valikulise täisarvu jaoks')

Valikuline argument teatud tüüpi

Argumendi ja positsioonilise argumendi erinevust positsioonilisest argumendist ei pea mainima, samas kui programmi käivitamisel tuleb argumenti nimetada lipuna koos selle väärtusega. Järgmine käsurida sisaldab täpselt samu tekste, välja arvatud juhtivad topeltread (sidekriipsud). Nad tähistavad, et argument on argument / lipp, mis tuleb programmi käivitamisel mainida koos antud tüüpi väärtusega. Argumendi kasutamise kohustuslikuks muutmine nõutav = tõene parameetrit saab kasutada funktsioonis add_argument () ühe teise argumendina. Nagu eespool öeldud, tekitab vormi mittejärgimine vea.

Lühikeste argumentide kasutamine

Lühikesed argumendid toimivad samamoodi nagu pikemad kolleegid. Ainus erinevus on see, et see aitab ruumi kokku hoida, kui kasutate suures koguses käsuridu või kui arendaja soovib hoida käske korras ja korraldatud nii palju kui võimalik. Järgmises näites kirjeldatakse, kuidas programm reageerib mõlemale argumendile samamoodi. Lühikeste argumentide kasutamisel kasutage kindlasti ainult ühte sidekriipsu, kuna see on tööstuses standard.

Tingimuslikud argumendid

Tingimuslikke argumente on varasemates näidetes argumentidena väga lihtne kasutada. Selle segmendi ainus erinevus on toimingu parameetri määramine. See aktsepteerib kahte väärtust, pood_tõsi, ja pood_vale. Kui toimingu parameetriks on määratud store_true, määratakse alati programmis lipuargumenti tõelise Boole'i ​​väärtuse abil; seetõttu saab seda kasutada tingimusliku argumendina. Tingimuslike argumentide rakendused peavad tegema kasutaja sisenditel põhineva loogilise voo. Niisiis, kasutaja otsustab, millist rada ta soovib minna ja kuidas programm liigub. Parsitud käsud asuvad nimeruumi objektis, seetõttu tagastab see pärast programmi käivitamist märksõna nimeruum ().

parser.add_argument ('- bld', action = 'store_true',
help = 'tingimuslik argument')

Programmi nime määramine

Kõigis näidetes ei täpsustata programmi nime. Selle asemel öeldakse lihtsalt skriptifaili nimi koos aktsepteeritud argumentide loendiga. Programmi nime kasutamise eeliseks on see, et see muudab programmi kasutajasõbralikumaks ja skripti nimest sõltumatuks. See on üsna kasulik, kui käivitamisega on seotud mitu skriptifaili. Nii et see ei aja kasutajat segadusse mitmetähenduslike nimedega.

Selle elluviimiseks tuleb kasutada kahte järgmist käsurida. Esimeses reas määrab see programmi nime koos parameetriga, kusjuures seda konkreetset parameetrit saab kasutada muutujana, kus kasutatakse programmi nime, siis programmi käivitamisel asendatakse prog parameeter argumentis Pararser ) funktsioon koos prog-parameetriga, mis tähendab selles näites „Nucuta App”. Lisaks on oluline kasutada käsku nimega % (prog) s muidu parsimine ei õnnestu.

parser = argparse.ArgumentParser (prog = 'Nucuta rakendus')
parser.add_argument ('- bld', help = 'See% (prog) s see')

Kuidas kontrollida tingimusi ja teha täitmist

Täitmisvoog on määratletud IF ELSE klauslitega. Need klauslid juhivad täitmisvoogu sõltuvalt tingimusest ja selle olemusest. Järgmises näites määratakse sisestatud täisarv väärtus muutujale bld, mis on arg-objektis. Seejärel kontrollitakse selle seisundi kontrollimiseks eelnevalt määratletud väärtust. Selles näites, kui sisestatud väärtus on suurem kui 10, täidetakse esimene lause, kui sisestatud väärtus on võrdne 10, täidetakse teine ​​lause, kui sisestatud väärtus on väiksem kui 10, siis täidetakse viimane lause. Samamoodi saab hõlpsalt juhtida täitmise voogu. Nagu näites on kujutatud, saab argumentidele juurde pääseda funktsiooni parse_args () tagastatud objekti kaudu - arg.

JÄRELDUSED

Selle juhendi abil olete valmis alustama kõigi Pythoni käsurea parsimist.  Edu

OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...