Me gustaría usar argparse para analizar los argumentos que conoce y dejar el resto sin tocar. Por ejemplo, yo quiero ser capaz de ejecutarDejar los argumentos intactos con argparse
performance -o output other_script.py -a opt1 -b opt2
que utiliza la opción de -o
y deja el resto intacto.
El módulo de profiler.py hace una cosa similar con optparse, pero ya que estoy usando argparse estoy haciendo:
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
Lo que también parece funcionar, pero ¿qué ocurre si también other_script.py también tiene una bandera -o
?
¿Existe en general una mejor manera de resolver este problema?
Ah no sabía nada de que gracias! Sin un marcador, de hecho, sería muy difícil para argparse entender lo que está pasando, supongo, no es un problema fácil. –
Debe aclararse que debe usar el método 'parse_known_args()' (al menos en python3. 6) – krishonadish