Utilizzando python optparse.py, c'è un modo per capire se è stato impostato un valore di opzione specifico dalla riga di comando o dal valore predefinito.Come sapere se l'opzione optparse è stata passata nella riga di comando o come predefinita
Idealmente mi piacerebbe avere un dict proprio come default, ma che contiene le opzioni in realtà fornito da linea di comando
So che si potrebbe paragonare il valore per ogni opzione con valori di default, ma questo non sarebbe distinguere un il valore è stato passato attraverso la riga di comando che corrisponde al valore predefinito.
Grazie!
EDIT
dispiace il mio fraseggio originale non era molto chiaro.
Ho un numero elevato di script chiamati dai file batch. A scopo di controllo, vorrei segnalare le opzioni che vengono passate e se sono passati da riga di comando, predefinito, o altri mezzi, a un file di registro.
Utilizzando i valori predefiniti è possibile stabilire se un'opzione corrisponde a un valore predefinito, ma ciò non indica ancora se è stato effettivamente fornito dalla riga di comando. Questo può essere rilevante: se un'opzione viene passata dalla riga di comando e concorda con l'impostazione predefinita, se si modifica il valore predefinito nel codice, lo script otterrà comunque lo stesso valore.
Per me sarebbe del tutto naturale avere un equivalente ai valori predefiniti, contenente i valori effettivamente forniti.
Per rendere il calcestruzzo domanda, in questo esempio:
>>> sys.argv = ['myscript.py','-a','xxx']
>>> import optparse
>>> parser = optparse.OptionParser()
>>> parser.add_option('-a', default = 'xxx')
>>> parser.add_option('-b', default = 'yyy')
Come faccio a sapere che l'opzione è stata approvata una da linea di comando. È l'unico modo per analizzare manualmente la riga di comando?
(so che questo è un punto abbastanza minore, ma ho pensato che sarebbe valsa la pena chiedere nel caso in cui mi manca smthing su optparse)
Grazie ancora
Ma non è il punto di default che ti impedisce di preoccuparti di quali opzioni sono state passate, indipendentemente dal fatto che corrispondano o meno ai valori predefiniti? –
Forse questo significa che hai bisogno di un'altra opzione? – codeape
per favore vedi la mia modifica, si tratta di auditing, quindi fa la differenza come è stato chiamato lo script. – user265454