1、fire(第三方模块)
项目地址:https://github.com/google/python-fire
import fire
class ceshi11():
''' 这是帮助说明help? '''
def mid(self, num1, num2):
''' 这是mid函数,这边的能显示吗 '''
return num1 + num2
def mid1(self, num3, num4):
return num3 - num4
if __name__ == "__main__":
fire.Fire(ceshi11)
输入 python xxx.py mid 1 2
2、sys.argv(内置模块)
import sys, getopt
def main(argv):
global inputfile
global outputfile
global inputfiletmp
inputfile = ''
outputfile = ''
inputfiletmp = ''
try:
#opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
opts, args = getopt.getopt(argv,"hi:o:m:",["ifile=","ofile="])
#“hi:o:m:” h 表示是一个开关选项;"i:"和"o:" "m:"则表示后面应该带一个参数。
except getopt.GetoptError:
print ('test.py -i <inputfile> -o <outputfile> -m <inputfiletmp>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print ('test.py -i <inputfile> -o <outputfile> -m <inputfiletmp>')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
elif opt in ("-m"):
inputfiletmp = arg
elif opt not in ("-i"):
inputfiletmp = arg
print ('输入的文件为:', inputfile)
print ('输出的文件为:', outputfile)
print ('输入的文件为:', inputfiletmp)
if __name__ == "__main__":
main(sys.argv[1:])
3、argparse(内置模块)
https://docs.python.org/zh-cn/3/library/argparse.html
# -*- coding: UTF-8 -*-
import argparse
def main():
parser = argparse.ArgumentParser()
'''
可以创建 单-的短参数也可以创建双-的长参数。也可以混合创建。
-h 和--help ,可以不创建,默认已经创建好了
'''
parser.add_argument("-v", "--verbosity", help="这里写上verbosity的帮助信息")
parser.add_argument("-a", help="这里写上verbosity的帮助信息")
args = parser.parse_args() #这一条好像是获取参数后的值的。
#print(args.a, args.verbosity) #这里需要注意,短参数和长参数混合使用的,在调用参数后的值的时候 要用args.长参数
if args.verbosity:
verbosity_1(args.verbosity)
if args.a:
a_test(args.a)
def verbosity_1(a1):
print("这是verbosity_1", a1)
def a_test(a1):
print("这是a的函数", a1)
if __name__ == '__main__':
main()
4、docopt(第三方模块)
这个好像不好用