136

1、Getopt模块是专门处理命令行参数的模块,用于获取命令行选项和参数。命令行选项使程序参数更加灵活,支持短选项模式(-)和长选项模式(-)。

2、该模块提供了两种方法和一种异常处理来分析命令行参数。

实例

importsys
importgetopt


defmain(argv):
input_file=""
output_file=""
#"hi:o:":短格式分析串,h后面没有冒号,表示后面不带参数;i和o后面带有冒号,表示后面带参数
#["help","input_file=","output_file="]:长格式分析串列表,help后面没有等号,表示后面不带参数;input_file和output_file后面带冒号,表示后面带参数
#返回值包括`opts`和`args`,opts是以元组为元素的列表,每个元组的形式为:(选项,附加参数),如:('-i','test.png');
#args是个列表,其中的元素是那些不含'-'或'--'的参数
opts,args=getopt.getopt(argv[1:],"hi:o:",["help","input_file=","output_file="])

foropt,arginopts:
ifoptin("-h","--help"):
print('script_2.py-i<input_file>-o<output_file>')
print('or:test_arg.py--input_file=<input_file>--output_file=<output_file>')
sys.exit()
elifoptin("-i","--input_file"):
input_file=arg
elifoptin("-o","--output_file"):
output_file=arg
print('输入文件为:',input_file)
print('输出文件为:',output_file)

#打印不含'-'或'--'的参数
foriinrange(0,len(args)):
print('不含'-'或'--'的参数%s为:%s'%(i+1,args[i]))

if__name__=="__main__":
main(sys.argv)

发表回复