我想使用argparse來解析它所知道的參數,然後保持其餘不變。例如,我希望能夠運行使用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
的標誌?
有沒有一般更好的方法來解決這個問題?
啊,不知道那個謝謝!如果沒有標記,實際上很難理解我猜想的是什麼,這不是一個簡單的問題。 – 2012-01-31 18:00:18
應該明確的是,您需要使用'parse_known_args()'方法(至少在python3上)。 6) – krishonadish 2018-02-07 23:12:13