9 个 Python 自动化脚本,轻松应对每日项目的繁琐任务

liftword3周前 (01-17)技术文章21

转载说明:原创不易,未经授权,谢绝任何形式的转载

一组小脚本,用于自动化您的日常项目和问题解决

很多手动重复任务需要完成,例如生成 PDF 报告、调整照片大小、压缩视频、合并 PDF 文件、发送电子邮件和短信等等。但是,您可以使用您最喜欢的编程语言 Python 来自动化这些任务。在本文中,我将向您展示 10 个 Python 小自动化脚本。所以,请把这篇文章标记在您的列表上,让我们开始吧。

自动化最大的好处就是释放人类的时间。

—— 比尔·盖茨

1、图片调整大小脚本

使用此 Python 脚本调整图片大小而不会丢失其实际质量和纵横比。这个便捷的脚本使用 Imageio 模块,可以保持图像质量的同时将其调整到任何大小。

这个实用的脚本可以轻松自动化您的手动图片调整任务。请查看下面提供的脚本代码。

  • 调整多张图片
  • 调整任何格式
# 图片调整大小脚本
# 需要安装 imageio 库
# pip install imageio
import imageio.v3 as imageio

# 定义调整图片大小的函数,传入两个参数,分别是图片路径和调整后的尺寸
def resize_image(image, size):
    # 读取图片
    photo = imageio.imread(image)
    # 调整图片大小
    photo = imageio.imresize(photo, size)
    # 保存调整后的图片
    imageio.imwrite("resized.jpg", photo)

# 如果该脚本被直接运行,则调用 resize_image() 函数,传入图片路径和调整后的尺寸
if __name__ == "__main__":
    resize_image("image5.jpg", (200, 200))
    
'''
代码输出:
调整前图片尺寸:(1280, 853, 3)
调整后图片尺寸:(200, 200, 3)
'''

2、视频压缩器

使用此自动化脚本将视频文件大小压缩到更小,脚本使用了 Moviepy 模块,可以使视频大小更小,同时保持视频质量良好。下面我将提到您可以使用脚本测试的预设选项,以选择最佳选项,如下属性所示:

  • ultrafast: 最快的压缩速度,但压缩后的视频质量较差。
  • superfast: 较快的压缩速度,但压缩后的视频质量略有损失。
  • veryfast: 快速压缩,但压缩后的视频质量略有损失。
  • faster: 比默认设置快,但压缩后的视频质量可能会有一些损失。
  • fast: 默认设置,压缩速度较快,但压缩后的视频质量可能会略有损失。
  • medium: 中等的压缩速度和压缩质量。
  • slow: 慢速压缩,但压缩后的视频质量较好。
  • slower: 比慢速压缩更慢,但压缩后的视频质量更好。
  • veryslow: 最慢的压缩速度,但压缩后的视频质量最好。
  • placebo: 极慢的压缩速度,但压缩后的视频质量最好。
# 视频压缩器
# 需要安装 moviepy 库
# pip install moviepy
from moviepy.editor import *

# 定义压缩视频的函数,传入视频文件路径
def Compress_Video(vid_file):
    # 加载视频文件
    video = VideoFileClip(vid_file)
    # 将视频文件压缩并保存为新文件
    video.write_videofile("compressed.mp4", preset="medium")
    # 输出压缩完成的提示信息
    print("Video Compressed")

# 如果该脚本被直接运行,则调用 Compress_Video() 函数,传入视频文件路径
if __name__ == "__main__":
    Compress_Video("video.mp4")
    
'''
代码输出:
Video Compressed
'''

3、ZIP 文件提取器

如果有很多需要解压缩的 ZIP 文件,那么就不要手动操作了,可以使用这个带有内置 Zip 文件模块的自动化脚本,它可以帮助您在任何文件夹中解压缩 ZIP 文件。以下是您可以自由使用的脚本。

  • 解压缩多个 ZIP 文件
  • 解压缩大型 ZIP 文件
  • 可以在您的项目中使用
# ZIP 文件提取器
import zipfile
from zipfile import ZipFile
import os

# 定义解压缩 ZIP 文件的函数,传入 ZIP 文件路径列表
def extract_zip(files):
    for file in files:
        # 使用 ZipFile 模块打开 ZIP 文件,并解压缩文件到 ZIP 文件所在的文件夹
        with ZipFile(file, 'r') as zip_f:
            zip_f.extractall(os.path.dirname(file))
    # 输出解压缩完成的提示信息
    print("Files extracted")

# 如果该脚本被直接运行,则调用 extract_zip() 函数,传入 ZIP 文件路径列表
if __name__ == "__main__":
    extract_zip(["zip1.zip", "zip2.zip"])
    
'''
代码输出:
Files extracted
'''

4、文本转语音

如果您需要将文本转换为人工智能语音,则可以使用此 Python 脚本,它使用 Gtts 模块,该模块是谷歌翻译语音 AI,可以将您的文本转换为带有真实人类机器声音的语音。

  1. 将文本转换为任何语音语言(支持中文)
  2. 可以在您的项目中使用
# 文本转语音转换器
# pip install gTTS
# pip install playsound
from gtts import gTTS
from playsound import playsound as play
import os

# 定义文本转语音转换的函数,传入两个参数,分别是待转换的文本和语音转换的目标语言
def TextToSpeech(text, lang):
    # 使用 gTTS 模块将文本转换为语音,并保存为 MP3 文件
    converter = gTTS(text, lang= lang)
    converter.save("speech.mp3")
    # 使用 playsound 模块播放 MP3 文件
    play("speech.mp3")
    # 删除 MP3 文件
    os.remove("speech.mp3")

# 如果该脚本被直接运行,则调用 TextToSpeech() 函数,传入文本和语音转换的目标语言
if __name__ == "__main__":
    TextToSpeech("How are you today?", "en")

要支持中文语音转换,您需要将 "lang" 参数设置为 "zh-cn",表示目标语言为中文。以下是修改后的代码:

# 文本转语音转换器
# 需要安装 gTTS 和 playsound 库
# pip install gTTS
# pip install playsound
from gtts import gTTS
from playsound import playsound as play
import os

# 定义文本转语音转换的函数,传入两个参数,分别是待转换的文本和语音转换的目标语言
def TextToSpeech(text, lang):
    # 使用 gTTS 模块将文本转换为语音,并保存为 MP3 文件
    converter = gTTS(text, lang=lang)
    converter.save("speech.mp3")
    # 使用 playsound 模块播放 MP3 文件
    play("speech.mp3")
    # 删除 MP3 文件
    os.remove("speech.mp3")

# 如果该脚本被直接运行,则调用 TextToSpeech() 函数,传入文本和语音转换的目标语言
if __name__ == "__main__":
    TextToSpeech("你好,今天过得怎么样?", "zh-cn")

注:运行此程序需要连接“「国际」互联网”。

5、PDF 合并器

现在,您可以使用以下脚本以编程方式合并您的 PDF 文件,该脚本使用 Pdfrw 模块读取您的 PDF 文件的所有页面,然后将其合并为一个 PDF 文件。以下是您可以在您的项目中自由使用的代码。

# PDF 合并器
# pip install pdfrw
import pdfrw as pdf

# 定义合并 PDF 文件的函数,传入 PDF 文件路径列表
def merge_pdfs(Pdf_files):
    pdfs = []
    for file in Pdf_files:
        pdfs.append(pdf.PdfReader(file))
    merger = pdf.PdfWriter()
    for pdf in pdfs:
        for p in pdf.pages:
            merger.addpage(p)
    merger.write("merged.pdf")

# 如果该脚本被直接运行,则调用 merge_pdfs() 函数,传入 PDF 文件路径列表
if __name__ == "__main__":
    merge_pdfs(["PDF1.pdf", "PDF2.pdf"])
    
# 代码输出:
# 将 "PDF1.pdf" 和 "PDF2.pdf" 两个文件合并为 "merged.pdf" 文件。

6、天气预报

使用此自动化脚本,您可以使用 Pywttr 模块获取来自 Wttr.in 的最新天气预报,并使用 Windows-toasts 模块为您生成一条通知,以便您了解您所在城市的当前天气情况。

# 天气警报
# 需要安装 pywttr 和 windows-toasts 库
# pip install pywttr
# pip install windows-toasts
from pywttr import Wttr
from windows_toasts import WindowsToaster, ToastText1

# 获取天气数据
city = "北京"
weather = Wttr(city)
w = weather.cn()

# 显示天气警报
notifier = WindowsToaster("天气警报")
msg = ToastText1()
msg.SetBody(w.weather[0].avgtemp_c + "°C")
msg.on_activated = lambda action: print(action)
notifier.show_toast(msg)

# 代码输出:
# 该脚本会在 Windows 桌面右下角显示一条通知,显示北京的当前温度。

7、生成 PDF 报告

使用以下 Python 脚本,可以编写代码生成 PDF 报告。该脚本使用 FPDF 模块,可以轻松地使用几行代码创建 PDF 文件。以下是您可以使用的一些重要函数来创建 PDF 报告文件。

# 生成 PDF 报告
# pip install fpdf2
# 需要安装 fpdf2 库
from fpdf import FPDF

# 创建 PDF 对象
report = FPDF()

# 添加页面
report.add_page()

# 设置字体样式和大小
report.set_font("Arial", size=15)

# 在 PDF 中插入一行文本
report.cell(100, 10, txt="Python", ln=1, align='C')

# 添加图像
report.image("image.png", w=50, h=50)

# 将 PDF 文件保存为 "test.pdf"
report.output("test.pdf")

# 代码输出:
# 该脚本将在当前目录下创建一个名为 "test.pdf" 的 PDF 文件,其中包含一个居中显示的文本行和一个图像。

8、CSV 转 Excel 转换器

如果您需要将 CSV 文件转换为 Excel 文件,则可以使用以下 Python 脚本。此自动化脚本使用 Pandas 模块,可以使用几行代码将任何 CSV 文件转换为 Excel 格式。

当您需要将大量且多个 CSV 文件转换为 Excel 格式时,此实用程序脚本非常有用。

# CSV 转 Excel 转换器
# 需要安装 pandas 库
import pandas as pd

def CSVtoExcel(csv_file):
    converter = pd.read_csv(csv_file)
    converter.to_excel("Converted.xlsx", index=False)
    print("Conversion successful")

if __name__ == "__main__":
    CSVtoExcel("Data.csv")

# 代码输出:
# 该脚本将在当前目录下创建一个名为 "Converted.xlsx" 的 Excel 文件,其中包含从 "Data.csv" 文件中读取的数据。

9、JSON 转 CSV 转换器

使用以下自动化脚本将您的 json 文件转换为 CSV 格式。此脚本使用 JSON 和 CSV 模块,读取您的 Json 文件内容,然后将其写入 CSV 字典格式。

# JSON 转 CSV 转换器
import json
import csv

def json_to_csv(json_file):
    with open(json_file, 'r') as J:
        Json_data = json.load(J)
    with open('data.csv', 'w') as C:
        csv_writer = csv.DictWriter(C, Json_data[0].keys())
        csv_writer.writeheader()
        for r in Json_data:
            csv_writer.writerow(r)

if __name__ == '__main__':
    json_to_csv('data.json')

# 代码输出:
# 该脚本将在当前目录下创建一个名为 "data.csv" 的 CSV 文件,其中包含从 "data.json" 文件中读取的数据。

结束

感谢您阅读本文到最后。我希望您能在本文中找到一些有用的脚本,可以在您的项目中使用。在文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注「前端达人」,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。

原文:
https://python.plainenglish.io/10-mini-automation-scripts-for-everyday-python-projects-e69396640d60

作者:Haider Imtiaz

非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

相关文章

10分钟学会python写游戏脚本!Python其实很简单

前言最近在玩儿公主连结,...

python生成脚本与部署的方案

上周接到一个需求任务,去...

如何运行 Python 脚本

Python 作为一种用途广泛且广泛O...

PyScript:让 Python 脚本在 Web 中跑起来

这是下一个大事件吗?如果...