Я хотел бы использовать argparse для анализа аргументов, которые он знает, а затем оставить остальные нетронутыми. Например, я хочу иметь возможность запустить
performance -o output other_script.py -a opt1 -b opt2
, который использует параметр -o
, а остальное оставляет нетронутым.
Модуль profiler.py делает то же самое с optparse, но, поскольку я использую argparse, я делаю:
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
Что, похоже, тоже работает, но что произойдет, если у other_script.py также есть -o
flag?
Есть ли вообще лучший способ решить эту проблему?