Python argparse: Käsurea argumentide töötlemine ja CLI tööriistade loomine

1. Mis on argparse? Pythonis põhikasutamine

Mis on argparse?

argparse on Python’i standardteek, mis aitab töödelda käsurea argumente. Programmide käivitamisel võimaldab see lihtsalt vastu võtta, analüüsida ja kasutada kasutaja määratud käsurea argumente, muutes programmi käitumist paindlikult. Näiteks saab CLI-tööriistade loomisel lasta kasutajal määrata failide asukoha või seadevalikuid käsurealt, mis muudab tööriista kasutajasõbralikumaks.

import argparse

parser = argparse.ArgumentParser(description="Failitöötlusprogramm")
parser.add_argument("input_file", help="Töödeldava faili tee")
args = parser.parse_args()

print(f"Töödeldav fail on: {args.input_file}")

Selles koodis võetakse kasutajalt käsureal määratud failitee vastu kui input_file ja kuvatakse see ekraanile. add_argument määrab argumendi ning parse_args() analüüsib selle — lihtne töövoog.

2. Miks kasutada argparset? Parim valik CLI-tööriistadele

Mis on CLI-tööriist?

CLI-tööriist (Command Line Interface) on programm, mida juhitakse otse käsurealt — eriti kasulik süsteemihalduseks, andmetöötluseks ja automatiseerimiseks. Pythonis CLI-tööriista loomisel on argparse väga praktiline: see võimaldab automaatselt vastu võtta ja töödelda argumente ning loob ise veateated ja abisõnumid.

argparse eelised

  • Paindlik argumentide määramine: Nõutavad ja valikulised argumendid on lihtsasti seadistatavad, võimaldades teha kasutajasõbralikke programme.
  • Automaatne veakäsitlus: Kui argumente on puudu või väärtus on sobimatu, kuvab argparse ise asjakohased veateated.
  • Abisõnumid: argparse toetab vaikimisi --help valikut, mis võimaldab kasutajal kiiresti saada infot kasutamise kohta.

Allpool on näide --help kasutamisest CLI-tööriista juhendi kuvamiseks.

$ python script.py --help
usage: script.py [-h] input_file

positional arguments:
  input_file  Töödeldav fail

optional arguments:
  -h, --help  kuvab selle abisõnumi ja väljub

 

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. argparse põhiülesehitus: samm-sammuline ülevaade

ArgumentParser’i loomine

Argumentide analüüsimiseks tuleb esmalt luua ArgumentParser objekt, kuhu saab lisada programmikirjelduse ja kasutusinfo.

parser = argparse.ArgumentParser(description="Failitöötlusprogramm")

Argumentide lisamine

Seejärel lisatakse add_argument() abil argumendid. Siin saab määrata, kas argument on kohustuslik või valikuline, ning lisada help parameetri kaudu selgituse.

parser.add_argument("input_file", type=str, help="Palun määrake sisendfail")
parser.add_argument("--verbose", action="store_true", help="Luba detailne väljund")

Argumentide analüüsimine

Viimaks kasutatakse parse_args() meetodit, et töödelda käsurea argumendid ja salvestada need args objekti.

args = parser.parse_args()

4. Näide: lihtne Python programm argparse’ga

Põhinäide

Allpool on lihtne näide, kus argparse abil võetakse vastu failinimi ja valikuline detailne väljund.

import argparse

parser = argparse.ArgumentParser(description="Programm failide töötlemiseks")
parser.add_argument("file", help="Määrake faili tee")
parser.add_argument("--verbose", action="store_true", help="Luba detailne väljund")

args = parser.parse_args()

if args.verbose:
    print(f"Faili '{args.file}' töödeldakse detailrežiimis")
else:
    print(f"Faili '{args.file}' töödeldakse")

See programm võimaldab --verbose abil valida, kas kasutada detailset või tavalist väljundit.

5. argparse olulised funktsioonid

Vastastikku välistavad argumendid

Vastastikku välistavad argumendid võimaldavad piirata, et teatud argumendid ei oleks samaaegselt kasutatavad (nt --foo ja --bar korraga keelatud).

parser = argparse.ArgumentParser(description="Näide välistavatest argumentidest")
group = parser.add_mutually_exclusive_group()
group.add_argument("--foo", action="store_true", help="Luba foo")
group.add_argument("--bar", action="store_true", help="Luba bar")

args = parser.parse_args()

Alamkäsud

Alamkäskude abil saab programmi jagada mitmeks funktsiooniks (nt install ja uninstall ühe programmi sees).

parser = argparse.ArgumentParser(description="Näide alamkäskudest")
subparsers = parser.add_subparsers(dest="command")

install_parser = subparsers.add_parser('install')
install_parser.add_argument('package', help="Paigaldatava paketi nimi")

uninstall_parser = subparsers.add_parser('uninstall')
uninstall_parser.add_argument('package', help="Eemaldatava paketi nimi")

args = parser.parse_args()

if args.command == "install":
    print(f"Paigaldan paketi {args.package}")
elif args.command == "uninstall":
    print(f"Eemaldan paketi {args.package}")

6. argparse veakäsitlus ja silumine

Automaatne veateade

argparse kuvab automaatselt veateate, kui mõni nõutav argument puudub või väärtus pole sobiv.

$ python script.py
usage: script.py [-h] --input INPUT
script.py: error: järgmised argumendid on nõutavad: --input

Kohandatud veateade

Mõnikord võib vaikimisi veateatest jääda väheks — kohandatud sõnum võimaldab anda rohkem infot.

parser = argparse.ArgumentParser(description="Näide kohandatud veateatest")
parser.add_argument("--input", required=True, help="Palun määrake sisendfail")

try:
    args = parser.parse_args()
except argparse.ArgumentError as err:
    print(f"Viga: {err}")

 

7. argparse praktilised kasutusjuhud

Kasutus automatiseerimistööriistades

argparse sobib hästi failitöötluse, andmeanalüüsi ja teiste automatiseeritud tööriistade loomiseks — kasutaja saab määrata failiteed ja töörežiimi käsurealt, muutes tööriista paindlikumaks.

$ python data_processor.py --input data.csv --output results.json --verbose

Suurprojektides

Suurte projektide puhul võimaldavad alamkäsud ja välistavad argumendid parandada kogu süsteemi kasutusmugavust. Näiteks saab pakihaldussüsteemis install ja remove funktsiooni ühendada ühte tööriista.

$ python package_manager.py install package_name

argparse lihtsustab kasutajale süsteemiga suhtlemist ja parandab koodi korduvkasutatavust ja hooldatavust.

8. Kokkuvõte

argparse aitab Pythonis luua paindlikke ja võimsaid käsurealiideseid (CLI). Kohustuslikud ja valikulised argumendid, alamkäsud ning vastastikku välistavad valikud võimaldavad luua kasutajasõbralikke ja hallatavaid programme. See on eriti kasulik suurtes projektides ning automatiseeritud andmetöötluses.

Praktilised näited ja jõudluse parandamise meetodid aitavad programmid veelgi tõhusamaks muuta. Samuti saab hea veakäsitluse ja parimate praktikate rakendamise abil pakkuda kasutajale selgeid juhiseid ja lihtsat veaotsingut.

Kui sul tekkis lisaküsimusi, võta julgelt ühendust!