记录一次工作中最佳Python脚本,让工作自动化起来!

138 阅读3分钟

在当今的快节奏工作环境中,自动化不再是一种奢侈,而是提高效率和精确性的必需手段。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=(128128)):
    # 打开图片
    image = Image.open(input_path)
    # 创建缩略图
    image.thumbnail(size)
    # 保存缩略图
    image.save(output_path)

# 替换为自己的文件路径
create_thumbnail('path_to_input_image.jpg''path_to_thumbnail_image.jpg')

结尾

感谢阅读本文,点个【点赞】&【在看】心情豁然开朗工作如鱼得水🤘!