python獲取命令行參數方案

Mark for myself

1. argparse

import argparse

def parse_args():
    parser = argparse.ArgumentParser(
        prog = 'operate_bag.py',
        description='delete topic during certain time')
    parser.add_argument('-i', type=str, help='name of the input rosbag file',
        default = None, metavar = "input_file")
    parser.add_argument('-o', type=str, help='name of the output rosbag file',
                        default=None, metavar="output_file")
    parser.add_argument('-t', type=str, help='topics which should be deleted to the main bag',default = None, metavar = "topics")
    parser.add_argument('-startUTC', type=int, help='the startUTC when should topic be deleted') 
    parser.add_argument('-endUTC', type=int, help='the startUTC when should topic be deleted')
    
    args = parser.parse_args()
    return args
    
if __name__ == "__main__":
    args = parse_args()
    print args
    starttime,endtime = get_unix_from_utc(args.i, args.startUTC, args.endUTC)
    print starttime,endtime
    operate_bag(args.i, args.o, args.t, starttime, endtime)

使用 python *.py -h 可以查詢不同參數的用法
添加參數時,帶‘-’的爲可選參數,不帶的爲positional參數,添加positional參數,則命令後必須帶對應的參數,否則報錯
具體可參考https://blog.csdn.net/u012005313/article/details/50111455

2. getargs

import sys
import getopt
import string

if __name__ == '__main__':
    opts, args = getopt.getopt(sys.argv[1:], "hi:p:d:")
 
    for op, value in opts:
        if op == "-i": 
            g_ip_addr = value 
        elif op == "-p": 
            g_port = string.atoi(value) 
        elif op == "-d":
            g_file_path=value
        elif op == "-h":
            print('-i: ip addr;\r\n-p: port;\r\n-d: dump file path') 
            exit()

使用方法如 python *.py -i ip -p port ,簡單粗暴,具體解釋請見https://blog.csdn.net/q_l_s/article/details/52921675

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章