命令行参数就是在使用命令行运行一个.py文件时,对一些程序中用到的参数进行赋值。如:程序中有一个变量username,在运行程序时输入不同的变量值就会使程序得到不同的执行结果。
在python使用命令行参数功能,只需引入argparse模块即可方便的创建命令行参数对象。
import argparse
# 使用ArgumentParser()创建一个实例化对象
ap = argparse.ArgumentParser()
# 使用add_argument()添加一些需要用到的变量,
# "-n"与"--name"分别为要创建的变量在命令行中赋值时使用的参数,需要同时设置简写版和完整版
ap.add_argument("-n","--name",required=True,help="the user name")
# 使用vars()将添加的命令行参数变量转换为字典的形式,在后面的代码中直接使用参数名作为键进行使用
args = vars(ap.parse_args())
print('Hello {},you are my friend'.format(args["name"]))
PS C:\Test> python test.py --name tom
Hello tom,you are my friend
当命令行参数中包含“-”时,在后面代码中需要使用“_”进行替换。
如
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-un","--user-name",required=True,help="the user name")
ap.add_argument("-fn","--file-name",required=True,help="the file name")
args = vars(ap.parse_args())
print('Hello {0},you are my friend, you have a file {1} here'.format(args["user_name"],args["file_name"]))
PS C:\Test> python test.py -un tom -fn hee.jpg
Hello tom,you are my friend, you have a file hee.jpg here
若不想每次运行程序都给每个参数指定值,则可以设定默认值这样在运行程序时就会使用默认的参数进行程序执行。但是需要将required=True 换成default=value。
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-un","--user-name",default="Tom",help="the user name")
ap.add_argument("-fn","--file-name",default="hee.jpg",help="the file name")
args = vars(ap.parse_args())
print('Hello {0},you are my friend, you have a file {1} here'.format(args["user_name"],args["file_name"]))
PS C:\Test> python testcode.py
Hello Tom,you are my friend, you have a file hee.jpg here