【新人系列】Python 入门(三十):工作常用第三方库 - 上

发布于:2025-02-11 ⋅ 阅读:(16) ⋅ 点赞:(0)

✍ 个人博客: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 库的使用,在此之前需要先安装一下这个第三方库。

pip install click

1.2 使用方法

在这里插入图片描述
示例一

  • 下面通过 @click.command() 将 print_msg 方法标记为了命令行命令。
  • 通过 @click.option 设置命令行传入参数 --name,以及默认值、提示信息和参数类型。
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()

在这里插入图片描述

示例二

  • 下面代码在上面示例的基础上,通过 @click.argument 装饰器指定了命令行必传的参数。
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()

在这里插入图片描述

我们也可以通过 --help 来查看一下提示信息,和上个示例不同,在 test.py [OPTIONS] 旁增加了一个必填的参数 NAME,除 NAME 外下面的 Options 选项里的都是选填参数。

在这里插入图片描述

2. 定时工具

2.1 APScheduler 定义

这里我们会介绍一个简单易用的定时工具库 - APScheduler,在使用它之前同样需要安装一下。

pip install apscheduler

APScheduler 的一些关键特点和概念:

  1. 调度器(Scheduler)
  • BlockingScheduler:在执行任务时会阻塞当前线程,直到调度器被停止。
  • BackgroundScheduler:在后台运行,不会阻塞当前线程。
  1. 触发器(Trigger)
  • 决定任务何时执行。常见的触发器类型包括:
  • IntervalTrigger:按照固定的时间间隔执行任务。
  • DateTrigger:在指定的日期和时间执行一次任务。
  • CronTrigger:通过 cron 表达式来灵活定义任务的执行时间规则。
  1. 任务存储(Job Store)
  • 用于存储任务的信息,如任务的下次执行时间等。支持内存存储和数据库存储等方式。
  1. 执行器(Executor)
  • 负责执行任务。默认提供了线程池和进程池执行器。

2.2 使用方法

使用 APScheduler 的一般步骤:

  1. 创建调度器对象,如 BlockingScheduler 或 BackgroundScheduler。
  2. 定义任务函数。
  3. 使用适当的触发器创建任务,并将任务添加到调度器中。
  4. 启动调度器。

使用 DateTrigger

下面这个例子定义了一个打印的函数,并使用 date 作为触发器,在启动调度器之后,任务函数将会在指定的时间 2024.8.13 9:41:00 的时候执行打印操作。

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。

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 秒执行一次任务。

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 库,它可以将文本转换成语音。在使用之前,同样需要下载一下这个第三方库。

pip install pyttsx3

下面这段示例在运行的时候,系统就会读出 Hello World 这段话。

import pyttsx3

# 初始化引擎
engine = pyttsx3.init()

engine.setProperty('rate', 150)  # 调整语速
engine.setProperty('volume', 0.9)  # 调整音量

# 将文本转换为语音并播放
engine.say("Hello, World!")
engine.runAndWait()