«

python命令行参数

时间:2023-3-1 21:39     作者:wen     分类: Python


在使用python开发脚本, 作为一个运维工具, 或者其他工具需要接受用户参数运行时, 这里就可以用到命令行传参的方式, 可以给使用者提供一个比较友好的交互体验.

python可以sys模块中的sys.argv来获取命令行参数

import sys

print('参数个数为',len(sys.argv),'个参数')
print('参数列表', str(sys.argv))

命令行参数-argparse模块

import argparse

# 创建一个解析器对象
parse = argparse.ArgumentParser(prog='my - program', usage='%(prog)s [options] usage', description='my - description',
                                epilog='my - epilog')

# 添加参数选项
# 必须参数
parse.add_argument('name', type=str, help='你自己的名字')
parse.add_argument('age', type=str, help='你自己的年龄')

# 可选参数
# parse.add_argument('-s', '--sex', type=str, help='你的性别')
# parse.add_argument('-s', '--sex', type=str, action='append', help='你的性别')
parse.add_argument('-s', '--sex', type=str,  help='你的性别',default='男',choices=['男','女','male','female'])

# print(parse.print_help())
# 开始解析参数
result = parse.parse_args()
print(result)

print(result.name, result.age, result.sex)

add_argument参数:

metaver: 帮助信息中显示的参数名称

const: 保存一个常量

default: 默认值

type: 参数类型, 默认为str

choices: 设置参数值范围, 如果choices中的类型不是字符串, 记得指定type

require: 该选项是否必须, 默认为 true

dest: 参数名

模拟mysql登入

import argparse

# 创建一个解析器对象
parse = argparse.ArgumentParser(prog='系统登入', usage='%(prog)s [options] usage', description='模拟mysql登入',
                                epilog='my - epilog')

# 添加参数选项
# 必须参数
parse.add_argument('mysql', type=str, help='登入数据库')
parse.add_argument('-u', type=str, help='用户名', dest='user')
parse.add_argument('-p', type=str, help='密码', dest='pwd')

# 可选参数
# parse.add_argument('-s', '--sex', type=str, help='你的性别')
# parse.add_argument('-s', '--sex', type=str, action='append', help='你的性别')
# parse.add_argument('-s', '--sex', type=str,  help='你的性别',default='男',choices=['男','女','male','female'])

# print(parse.print_help())
# 开始解析参数
result = parse.parse_args()
print(result)

if result.user == 'root' and result.pwd == 'root':
    print('登入成功')
else:
    print('登入失败')

print(result.user, result.pwd, result.sex)