Mai mult
De intrare de utilizator și argumente în linia de comandă
Cum am un script Python care o) poate accepta intrare de utilizator și cum pot face b) citește în argumente dacă rulat din linia de comandă?
502
12
Pentru a citi intrare utilizator, puteți încerca la " cmd " modul pentru a crea cu ușurință o mini-linie de comandă interpret (cu texte de ajutor și autocompletare) și
raw_input
(input
pentru Python 3+) pentru a citi o linie de text de la utilizator.Linie de comandă intrări sunt în
sys.argv
. Încercați acest lucru în script-ul dvs.:Există două module pentru parsarea opțiuni de linie de comandă:
optparse
(învechită începând cu Python 2.7, utilizareaargparse
în loc) șigetopt
. Dacă doriți doar pentru fișiere de intrare la script-ul dvs., iată putereafileinput
.De Python library reference este prietenul tău.
Sau pentru Python 3:
raw_input
nu mai este disponibil in Python 3.x. Darraw_input
a fost redenumit "intrare", astfel încât aceeași funcționalitate există.Documentație de modificare
Cel mai bun mod de a procesa argumente în linia de comandă este
argparse
module.Folosesc raw_input()
pentru a obține de intrare de utilizator. Dacă importați [
readline modul`]2 utilizatorii vor avea linie de editare și istorie.Aveți grijă să nu pentru a utiliza "intrare" funcția, dacă nu știi ce ai de're face. Spre deosebire de
raw_input
,input
va accepta orice expresie python, deci's place "eval"Acest program simplu vă ajută în a înțelege cum să se hrănească introduse de utilizator de la linia de comandă și să arate ajuta pe trecerea de argument invalid.
Folosi 'raw_input' de intrare de la o consolă/terminal.
daca vrei doar un argument în linia de comandă ca un nume de fișier sau ceva de exemplu
apoi, puteți utiliza sys.argv...
sys.argv este o listă în care 0 este numele programului, deci, în exemplul de mai sus sys.argv[1] ar fi "nume_fișier.txt"
Dacă doriți să aveți deplină pe opțiuni de linie de comandă utilizați optparse module.
Pev
Dacă se execută Python <2.7, ai nevoie optparse, care, ca doctorul explică va crea o interfață cu linie de comandă argumente, care sunt numite atunci când cererea este rulat.
Cu toate acestea, în Python ≥2.7, optparse a fost depreciat, și a fost înlocuit cu argparse așa cum se arată mai sus. Un exemplu rapid de la docs...
Ca de Python
3.22.7, există acum argparse pentru prelucrarea argumente în linia de comandă.Daca's 3.versiune x, atunci pur și simplu utilizați:
De exemplu, doriți să introduceți 8:
x va fi egal cu 8 dar's de gând să fie un șir cu excepția dacă definiți altfel.
Astfel încât să puteți utiliza comanda de conversie, cum ar fi:
În Python 2:
În Python 3: