学习Python命令行参数的基础。
尝试使用 argparse库 对命令行参数进行更高级的解析。
运行python脚本的时候,可以在脚本文件名后面加上参数(以空格分隔)。
python脚本里可以通过sys.argv来得到这些参数。
例如,python脚本内容:
import sys
if __name__ == "__main__":
print(type(sys.argv))
print(sys.argv)
在Cmd中运行这个文件:
python D:\Temp\test0905.py apple red
将会输出:
<class 'list'>
['D:\\Temp\\test0905.py', 'apple', 'red']
可以看到,sys.argv是一个列表,它的第一个元素是文件名本身,后面每个元素都是一个参数。
其实,只要知道了基础用法,命令行参数的解析已经不存在技术上的障碍了。不过在易用性上,还有更方便的途径。
例如,当参数是这种形式:
python D:\Temp\test0905.py -fruit apple -color red
则上面的脚本会输出:
['D:\\Temp\\test0905.py', '-fruit', 'apple', '-color', 'red']
这样使用起来有一些问题:
而使用一些更高级的方式会让解析参数更方便。
argparse库就能解决上面提到的问题。(另一个解析参数的库是 getopt,可以看这里)
比如,上面的例子就可以这样来解析参数:
import argparse
if __name__ == "__main__":
#创建ArgumentParser
parser = argparse.ArgumentParser()
#添加要解析的参数名字:
parser.add_argument("-color")
parser.add_argument("-fruit")
#解析:
args = parser.parse_args()
#测试打印一些数据
print(type(args))
print(args)
print(args.fruit)
再次调用
python D:\Temp\test0905.py -fruit apple -color red
将会得到:
<class 'argparse.Namespace'>
Namespace(color='red', fruit='apple')
apple
当然,这只是一个最简单的使用例子。argparse库更多的使用细节可以参考:Argparse Tutorial