Chciałbym użyć argparse do przeanalizowania argumentów, które zna, a następnie pozostawić resztę nietkniętą. Na przykład chcę, aby być w stanie uruchomićPozostaw argumenty nietknięte argumserem
performance -o output other_script.py -a opt1 -b opt2
który wykorzystuje opcję -o
i pozostawia reszta nietknięta.
Moduł profiler.py robi coś podobnego z optparse, ale ponieważ używam argparse robię:
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
co wydaje się również do pracy, ale co się stanie, jeśli również other_script.py także ma flagę -o
?
Czy ogólnie istnieje lepszy sposób rozwiązania tego problemu?
Ach nie wiedzieli o tym, dzięki! Bez markera byłoby naprawdę trudno zrozumieć, co się dzieje, chyba nie jest to łatwy problem. –
Należy wyjaśnić, że musisz użyć metody 'parse_known_args()' (przynajmniej na python3. 6) – krishonadish