✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html
📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪
1. 命令行工具
1.1 常见工具
常见命令行工具:
- argparse 是 Python 标准库中的一个模块,它提供了丰富的功能来定义命令行参数的名称、类型、默认值、帮助信息等。通过它,您可以轻松地处理用户在命令行中输入的各种参数,并且可以进行参数的验证和错误处理。
- click 这个库具有高度的灵活性和可扩展性。它支持命令的嵌套、参数的多种类型(包括文件、目录等)、选项的别名、参数的自动文档生成等。使用 click 可以让命令行工具的定义更加清晰和易读。
- fire 则以一种非常简洁的方式将现有的 Python 函数或对象转换为命令行接口。您不需要显式地定义参数和选项,fire 会根据函数的参数自动进行处理。
除了 Python 自带的命令行标准库外,click 库是最受欢迎、使用最多的第三方 Python 命令行解析工具。下面主要会介绍 click 库的使用,在此之前需要先安装一下这个第三方库。
shell
pip install click
1.2 使用方法
示例一
- 下面通过 @click.command() 将 print_msg 方法标记为了命令行命令。
- 通过 @click.option 设置命令行传入参数 --name,以及默认值、提示信息和参数类型。
python
import click
@click.command()
@click.option("--name", default="hello", help="打印名称", type=str)
def print_msg(name):
click.echo(f"名称为:{name}")
if __name__ == '__main__':
print_msg()
![](https://i-blog.csdnimg.cn/direct/1e1a6f98ec704f4e85050eb6f2b1e997.png)
示例二
- 下面代码在上面示例的基础上,通过 @click.argument 装饰器指定了命令行必传的参数。
python
import click
@click.command()
@click.option("--count", default=1, help="打印次数", type=int)
@click.argument("name")
def print_msg(count, name):
for x in range(count):
click.echo(f"名称为:{name}")
if __name__ == '__main__':
print_msg()
![](https://i-blog.csdnimg.cn/direct/eac97f83a89f423c9004147d548fad49.png)
我们也可以通过 --help 来查看一下提示信息,和上个示例不同,在 test.py [OPTIONS] 旁增加了一个必填的参数 NAME,除 NAME 外下面的 Options 选项里的都是选填参数。
![](https://i-blog.csdnimg.cn/direct/39875a04a5094c5a9c058b691cf9546c.png)
2. 定时工具
2.1 APScheduler 定义
这里我们会介绍一个简单易用的定时工具库 - APScheduler,在使用它之前同样需要安装一下。
shell
pip install apscheduler
APScheduler 的一些关键特点和概念:
- 调度器(Scheduler)
- BlockingScheduler:在执行任务时会阻塞当前线程,直到调度器被停止。
- BackgroundScheduler:在后台运行,不会阻塞当前线程。
- 触发器(Trigger)
- 决定任务何时执行。常见的触发器类型包括:
- IntervalTrigger:按照固定的时间间隔执行任务。
- DateTrigger:在指定的日期和时间执行一次任务。
- CronTrigger:通过 cron 表达式来灵活定义任务的执行时间规则。
- 任务存储(Job Store)
- 用于存储任务的信息,如任务的下次执行时间等。支持内存存储和数据库存储等方式。
- 执行器(Executor)
- 负责执行任务。默认提供了线程池和进程池执行器。
2.2 使用方法
使用 APScheduler 的一般步骤:
- 创建调度器对象,如 BlockingScheduler 或 BackgroundScheduler。
- 定义任务函数。
- 使用适当的触发器创建任务,并将任务添加到调度器中。
- 启动调度器。
使用 DateTrigger
下面这个例子定义了一个打印的函数,并使用 date 作为触发器,在启动调度器之后,任务函数将会在指定的时间 2024.8.13 9:41:00 的时候执行打印操作。
python
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
# 创建调度器对象
scheduler = BlockingScheduler()
# 定义任务函数
def print_msg(text):
print(text)
# 使用 date 触发器创建任务,并添加到调度器中
scheduler.add_job(print_msg, 'date', run_date=datetime.datetime(2024, 8, 13, 9, 41, 00), args=['hello world'])
# 启动调度器
scheduler.start()
使用 IntervalTrigger
下面这个示例则是使用 interval 作为触发器,通过 seconds=5 定义了任务函数每 5 秒执行一次,并且也定义了 end_date,将任务函数执行的截止时间设置在 2024-8-13 12:00:00。
python
from apscheduler.schedulers.blocking import BlockingScheduler
# 创建调度器对象
scheduler = BlockingScheduler()
# 定义任务函数
def print_msg(text):
print(text)
# 使用 interval 触发器创建任务,并添加到调度器中
scheduler.add_job(print_msg, 'interval', seconds=5, args=['hello world'], end_date="2024-8-13 12:00:00")
# 启动调度器
scheduler.start()
使用 CronTrigger
cron 触发器相对上面两个触发器则更加的灵活,不仅可以指定具体的执行日期,还可以指定执行的周期。下面这个例子,同样展示的是每 5 秒执行一次任务。
python
from apscheduler.schedulers.blocking import BlockingScheduler
# 创建调度器对象
scheduler = BlockingScheduler()
# 定义任务函数
def print_msg(text):
print(text)
# 使用 cron 触发器创建任务,并添加到调度器中
scheduler.add_job(print_msg, 'cron', second='*/5', args=['hello world'])
# 启动调度器
scheduler.start()
3. 文字转语音
我们再介绍一个 pyttsx3 库,它可以将文本转换成语音。在使用之前,同样需要下载一下这个第三方库。
shell
pip install pyttsx3
下面这段示例在运行的时候,系统就会读出 Hello World 这段话。
python
import pyttsx3
# 初始化引擎
engine = pyttsx3.init()
engine.setProperty('rate', 150) # 调整语速
engine.setProperty('volume', 0.9) # 调整音量
# 将文本转换为语音并播放
engine.say("Hello, World!")
engine.runAndWait()