Contribute Media
A thank you to everyone who has made this possible: Read More

Rendere Python un linguaggio di scripting migliore

Description

Molti programmatori Python non amano che il loro linguaggio preferito venga chiamato "linguaggio di scripting", sebbene Python sia molto pratico per questo tipo di attività. Piccoli script in Python tendono a crescere fino a diventare veri e propri programmi solo perché è molto facile aggiungere nuove funzionalità.

Per contro c'è un compito nel quale linguaggi di scripting tradizionali come gli shell Unix/Linux o persino il cmd di Windows sono più pratici di Python: l'invocazione di comandi esterni. Le manipolazioni di stringhe necessarie per costruire linee di comando per os.system() o Popen paiono eccessivamente complicate rispetto allo scrivere il comando direttamente nello script, magari con una spruzzatina di variabili d'ambiente qui e là.

In questa presentazione mostrerò come il mio package nxpy.command possa essere usato per creare wrapper di comandi esterni in modo che possano essere richiamati come funzioni Python, i cui argomenti vengono poi tradotti in opzioni e argomenti del comando stesso.

Questo è possibile anche per gli interpreti di comandi interattivi; descriverò come ispezionare l'output e l'error del comando corrente per verificare che sia terminato correttamente, così come la possibilità di imporre vincoli temporali all'esecuzione dei comandi.

Sebbene questo approccio risulti eccessivo per linee di comando semplici e fisse, diventa pratico in presenza di molteplici sotto-comandi che condividono molte delle loro opzioni, come avviene ad esempio per svn o git. In assenza di una vera e propria API questo è un modo efficace di crearne una in modo rapido ed incrementale.

Details

Improve this page