Vorrei usare argparse per analizzare gli argomenti che conosce e quindi lasciare il resto intatto. Per esempio io voglio essere in grado di eseguireLascia argomenti non trattati con argparse
performance -o output other_script.py -a opt1 -b opt2
che utilizza l'opzione -o
e lascia il resto intatto.
Il profiler.py modulo fa una cosa simile con optparse, ma dal momento che sto usando argparse sto facendo:
def parse_arguments():
parser = new_argument_parser('show the performance of the given run script')
parser.add_argument('-o', '--output', default='profiled.prof')
return parser.parse_known_args()
def main():
progname = sys.argv[1]
ns, other_args = parse_arguments()
sys.argv[:] = other_args
Che sembra anche funzionare, ma cosa succede se anche other_script.py anche ha una bandiera -o
?
C'è in generale un modo migliore per risolvere questo problema?
Ah non sapeva che, grazie! Senza un pennarello sarebbe davvero difficile per argparse capire cosa sta succedendo, immagino, non è un problema facile .. –
Dovrebbe essere chiarito che è necessario usare il metodo 'parse_known_args()' (almeno su python3. 6) – krishonadish