9 个 Python 自动化脚本,轻松应对每日项目的繁琐任务
转载说明:原创不易,未经授权,谢绝任何形式的转载
一组小脚本,用于自动化您的日常项目和问题解决
很多手动重复任务需要完成,例如生成 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,可以将您的文本转换为带有真实人类机器声音的语音。
- 将文本转换为任何语音语言(支持中文)
- 可以在您的项目中使用
# 文本转语音转换器
# 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
非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正