Python 命令行工具入门:用 argparse 写一个重复提醒器

举报
yd_263910519 发表于 2026/11/03 09:49:06 2026/11/03
【摘要】 通过一个不依赖第三方库的小脚本,理解 argparse 的位置参数、可选参数、类型转换和帮助提示。

写完一个 Python 脚本后,常常需要每次打开代码修改配置才能再次运行。把变化的内容作为命令行参数传入,可以让同一段代码处理不同输入。下面使用标准库 argparse,做一个在终端重复显示提醒文字的小工具。

一、准备脚本

在自己的练习目录创建 remind.py,写入以下内容:

import argparse

parser = argparse.ArgumentParser(description='在终端显示提醒')
parser.add_argument('message', help='要显示的提醒文字')
parser.add_argument('--count', type=int, default=1, help='显示次数,默认为 1')
parser.add_argument('--upper', action='store_true', help='将英文转换为大写')
args = parser.parse_args()

if args.count < 1:
    parser.error('--count 必须大于或等于 1')

message = args.message.upper() if args.upper else args.message
for _ in range(args.count):
    print(message)

其中 message 是位置参数,用户需要提供提醒内容;--count 和 --upper 是可选参数。示例只在终端打印,不会设置系统通知或定时任务。

二、先运行默认情况

在脚本所在目录运行:

python remind.py "休息一下"

预期显示一行“休息一下”。没有指定 --count 时,程序采用默认值 1。若电脑上的 Python 3 命令名是 python3,请把示例中的 python 替换为 python3。带空格的提醒内容要按所用终端的规则加引号,避免被拆成多个参数。

三、调整次数与格式

python remind.py "hello" --count 2 --upper

预期输出两行 HELLO。type=int 负责把次数转换为整数;store_true 让 --upper 在出现时为真,省略时为假。大写处理调用字符串的 upper 方法,中文一般不会因此改变。

四、查看帮助和错误

执行 python remind.py --help,可以看到程序说明和参数用法。省略必需的提醒文字,或者把次数写成非整数,argparse 会显示用法和错误提示。输入 0 或负数虽然能转换为整数,但不符合这个工具的规则,因此代码用 parser.error 给出明确提示。

可以分别试试 --count 0、--count abc 和不带任何参数的情况,观察错误发生在哪一步。先写下预期,再运行验证,比只测试一个正常输入更容易发现边界问题。

五、扩展时保持职责清晰

这个练习只展示参数解析。以后若增加保存提醒、定时发送等功能,建议先明确文件位置、覆盖规则和运行环境,再分别实现和测试。参数越多,越要让帮助文字说明默认值与限制;也不要把密码或令牌直接写进命令行示例。

掌握位置参数、可选参数、默认值和类型检查后,小脚本就能通过清楚的接口接受输入,而不必每次修改源码。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。