在当今的快节奏工作环境中,自动化不再是一种奢侈,而是提高效率和精确性的必需手段。Python,以其易于学习和强大的功能而闻名,成为实现各种自动化任务的理想选择。无论是数据处理、报告生成,还是日常的文件管理,一个简单但有效的Python脚本就能大幅减轻您的工作负担。在本文中,我们将探索如何使用Python来创建多个自动化脚本,它不仅能够节省您的时间,还可以提高工作的准确率和效率。我们先来看第一个自动化脚本
1.网站图片一键式下载
支持检索到文件扩展名(jpg、png、gif、svg、webp、jpeg)格式图片下载
由于项目代码集成在一起,完整代码放在了文章末尾,需要可联系~
def download_page_img_url(self, url, html_resource):
# 存储分类
js = []
imgs = []
css = []
videos = []
other_url = []
print('-' * 100)
super().get_img_console("title", f"当前请求的站点为:{url}")
# print(html)
""" 匹配相关图片 """
pattern = re.compile(
r'background-image:\s+url[(](.*?)[)]|src="(.*?)"|href="(.*?)"|poster="(.*?)")
findall = re.findall(pattern, html_resource)
for item in set([''.join(x) for x in findall]):
# print(item)
# 包含图片
if item.endswith('.png') or item.endswith('.jpg') or item.endswith('.gif') or item.endswith(
'.svg') or item.endswith(
'.webp') or item.endswith(
'.jpeg'):
imgs.append(item)
效果截图
自动化文件管理
此功能可以在你的当前文件夹下的文件单独封装成一个文件夹形式
import os
import shutil
import requests
diskpath = r"替换至你的文件夹绝对路径"
for i in os.listdir(diskpath):
if os.path.isfile(os.path.join(diskpath, i)):
filename, filename_extension = os.path.splitext(i)
folder_path = os.path.join(diskpath, filename)
if not os.path.exists(folder_path):
os.mkdir(folder_path)
sourcepath = os.path.join(diskpath, i)
target_file = os.path.join(folder_path, i)
# print(sourcepath, target_file)
shutil.move(sourcepath, target_file)
整理前
整理后
多个文件重命名
import os
def rename_files(directory_path, old_name, new_name):
# 遍历目录中的所有文件
for filename in os.listdir(directory_path):
# 检查文件名中是否包含旧名称
if old_name in filename:
# 生成新的文件名
new_filename = filename.replace(old_name, new_name)
# 重命名文件
os.rename(os.path.join(directory_path, filename),
os.path.join(directory_path, new_filename))
# 例如 directory_path: 您要重命名文件的目录路径
rename_files('your_directory_path', 'old_name', 'new_name')
图片处理-压缩
import os
import tinify
# 格式化文件大小的函数 format_size
def format_size(size):
# Convert size in bytes to human-readable format
for unit in ["B", "KB", "MB", "GB", "TB"]:
if size < 1024.0:
return f"{size:.1f} {unit}"
size /= 1024.0
def compress_images_in_directory(directory):
original_total_size = 0
compressed_total_size = 0
for root, dirs, files in os.walk(directory):
"""
:param root: 当前正在遍历的目录路径
:param dirs: 子目录列表[不包含子目录下的子目录]
:param files: 当前目录下的文件列表
"""
for file in files:
if file.endswith(".jpg") or file.endswith(".jpeg") or file.endswith(".png") or file.endswith(".webp"):
file_path = os.path.join(root, file)
original_size = os.path.getsize(file_path)
original_total_size += original_size
original_size_str = format_size(original_size)
source = tinify.from_file(file_path)
source.to_file(file_path)
compressed_size = os.path.getsize(file_path)
compressed_total_size += compressed_size
compressed_size_str = format_size(compressed_size)
print(f"已压缩文件 {file_path} ({original_size_str} -> {compressed_size_str})")
original_total_size_str = format_size(original_total_size)
compressed_total_size_str = format_size(compressed_total_size)
saved_space_str = format_size(original_total_size - compressed_total_size)
print(f"压缩前总占用空间: {original_total_size_str}")
print(f"压缩后总占用空间: {compressed_total_size_str}")
print(f"已节省空间: {saved_space_str}")
if __name__ == "__main__":
tinify.key = "tinify官网注册api账号,把key值粘贴在此处"
# 压缩目录
directory = r"设置要修改的文件夹绝对路径" # Set the directory here
compress_images_in_directory(directory)
创建缩略图
from PIL import Image
def create_thumbnail(input_path, output_path, size=(128, 128)):
# 打开图片
image = Image.open(input_path)
# 创建缩略图
image.thumbnail(size)
# 保存缩略图
image.save(output_path)
# 替换为自己的文件路径
create_thumbnail('path_to_input_image.jpg', 'path_to_thumbnail_image.jpg')
结尾
感谢阅读本文,点个【点赞】&【在看】心情豁然开朗工作如鱼得水🤘!