前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python argparse

Python argparse

原创
作者头像
花落花相惜
发布2021-12-06 13:12:25
1900
发布2021-12-06 13:12:25
举报

argparse特性

  • 支持可选参数
  • 支持子命令
  • 支持重复参数个数统计
  • 更加友好的使用提示

整体使用样例(看注释)

代码语言:txt
复制
import argparse
代码语言:txt
复制
from datetime import datetime
代码语言:txt
复制
parser = argparse.ArgumentParser()
代码语言:txt
复制
# 必填参数
代码语言:txt
复制
parser.add_argument("host", help="database host")
代码语言:txt
复制
# 可选参数(`--`前缀)
代码语言:txt
复制
parser.add_argument("--database", help="database name")
代码语言:txt
复制
# 类型要求(type=int)
代码语言:txt
复制
parser.add_argument("--port", help="database port", type=int, default=3306)
代码语言:txt
复制
def valid_datetime(s):
代码语言:txt
复制
    """
代码语言:txt
复制
    自定义的日期时间校验方法
代码语言:txt
复制
    :param s:
代码语言:txt
复制
    :return:
代码语言:txt
复制
    """
代码语言:txt
复制
    try:
代码语言:txt
复制
        return datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
代码语言:txt
复制
    except ValueError:
代码语言:txt
复制
        msg = "Not a valid date: '{0}'.".format(s)
代码语言:txt
复制
        raise argparse.ArgumentTypeError(msg)
代码语言:txt
复制
# 指定类型校验(type=valid_date):自定义的校验方法valid_date
代码语言:txt
复制
parser.add_argument("--begin", help="数据对账的开始时间(含)", default=None, type=valid_datetime)
代码语言:txt
复制
parser.add_argument("--end", help="数据对账区间的结束时间(不含)", default=None, type=valid_datetime)
代码语言:txt
复制
args = parser.parse_args()
代码语言:txt
复制
print(args.host)
代码语言:txt
复制
print(args)

必填参数

代码语言:txt
复制
parser.add_argument("host", help="database host")
代码语言:txt
复制
print(args)
  • 使用效果
代码语言:txt
复制
python test.py localhost
代码语言:txt
复制
Namespace(host='localhost')
  • 帮助文档
代码语言:txt
复制
usage: test.py [-h] host
代码语言:txt
复制
positional arguments:
代码语言:txt
复制
  host        database host
代码语言:txt
复制
optional arguments:
代码语言:txt
复制
  -h, --help  show this help message and exit

可选参数数(--前缀)

代码语言:txt
复制
parser.add_argument("--database", help="database name")

特定类型(type=int

parser.add_argument("--port", help="database port", type=int, default=3306)

自定义类型

代码语言:txt
复制
def valid_datetime(s):
代码语言:txt
复制
    """
代码语言:txt
复制
    自定义的日期时间校验方法
代码语言:txt
复制
    :param s:
代码语言:txt
复制
    :return:
代码语言:txt
复制
    """
代码语言:txt
复制
    try:
代码语言:txt
复制
        return datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
代码语言:txt
复制
    except ValueError:
代码语言:txt
复制
        msg = "Not a valid date: '{0}'.".format(s)
代码语言:txt
复制
        raise argparse.ArgumentTypeError(msg)
代码语言:txt
复制
# 指定类型校验(type=valid_date):自定义的校验方法valid_date
代码语言:txt
复制
parser.add_argument("--begin", help="数据对账的开始时间(含)", default=None, type=valid_datetime)
代码语言:txt
复制
parser.add_argument("--end", help="数据对账区间的结束时间(不含)", default=None, type=valid_datetime)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • argparse特性
  • 整体使用样例(看注释)
  • 必填参数
  • 可选参数数(--前缀)
  • 特定类型(type=int)
  • 自定义类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档