March 9
In Python, come in molte altre lingue, è necessario gestire l'input dell'utente a un programma lanciato dalla riga di comando. La libreria Python "sys" contiene un numero maggiore di parametri specifici del sistema, comprese le funzioni necessarie per gestire gli argomenti dalla riga di comando. La libreria Python "getopt" fornisce un metodo utile per l'analisi di un gran numero di argomenti della riga di comando e bandiere in diversi formati.
Aprire un editor di testo e iniziare a scrivere un nuovo documento Python. Formattare il programma come segue. La libreria "sys" contiene le funzioni per la gestione delle variabili degli argomenti. Si striscia sys.argv [0] in quanto è il nome dello script, in questo caso "my_program.py." Il controllo "nome" assicura che lo script è stato chiamato dalla riga di comando, piuttosto che un altro programma.
my_program.py
importazione getopt, SYS
def principale (argv):
Argomento parser andrà qui
se il nome == "principale":
principale (sys.argv [1:])
Chiamare il "getopt.getopt) (" la funzione all'interno del tuo ") principale (" funzione utilizzando la seguente sintassi. Per questo esempio, gli argomenti di "my_program.py" includono una bandiera "-v" per l'output verbose, una bandiera "-h" o "help" per stampare l'utilizzo, e un "-i" o "--input "per specificare un file di input.
def principale (argv):
provare:
opts, args = getopt.getopt(argv, "hi:v", ["help", "input"]);
salvo: eccetto getopt.GetoptError, err:
print str(err); #print error
impostare i valori predefiniti
usage(); #User-written function to print appropriate usage of program
sys.exit(2);
verbose = False;
input_file = Nessuno;
per o, un in sceglie:
if o in ("-h", "--help"):
usage(); sys.exit();
elif o == "-v":
verbose = True;
elif o in ("-i", "--input"):
input_file = a;
else:
assert False, "Unknown argument."
if (input_file == None):
print "No input file given.";
usage(); sys.exit(2);
La libreria "argparser" fornisce un modo simile di analizzare argomenti con meno codice e messaggi di errore più dettagliati.
importazione argpase, SYS
def main ():
parser = argparse.ArgumentParser ()
parser.add_argument ( '- i', '- ingresso', dest = 'file_input', type = str, help = "File di input")
parser.add_argument ( '- h', '- help')
parser.add_argument ( '- v', dest = 'verbose', action = 'store_true')
args = parser.parse_args ()
Codice per controllare la validità degli argomenti
Se si sta preparando il programma Python per la distribuzione, è importante gestire tutti i possibili scenari di utilizzo durante il controllo per argomenti di input. Ad esempio, un nome di file deve essere controllato per determinare se si collega a un file del formato appropriato. Altre variabili devono essere controllati per determinare che il loro valore ha un senso all'interno del programma.