方法一:使用argparse

import argparse
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--ip', type=str,nargs='+', default=None, help="os IP")
parser.add_argument('--num', type=int, default=10, help="number")
args = parser.parse_args()
print(args.ip )
print(args.num )

参数说明:

nargs='+' 至少传入一个参数

parser.print_help() 自动打印help提示

方法二:使用fire模块

有点更灵活,更适合已经开发完的软件改动量小

fire模块属于第三方模块需要单独安装

方式一:直接读取函数传参,如果传参有默认参数则为非必传项,如果没有则为必传项

import fire
def funcTest(run_cmd,timeout):
print(run_cmd)
print(timeout)
if __name__ == '__main__':
fire.Fire(funcTest)

运行:

python test_fire.py run_test_cmd 22

方式二:直接从类中解析

import fire
class FuncTest():
def funcrun(self,run_cmd,timeout):
print(run_cmd)
print (timeout)
if __name__ == '__main__':
fire.Fire(FuncTest)

运行:

python test_fire.py funcrun run_test_cmd 10