用这些代码节省了90%的重复工作

196 阅读4分钟

这些"偷懒"的代码分享给大家。别担心,这些代码都很简单,就算是Python小白也能轻松上手。

批量重命名文件,从此不再手工改名

有天我要整理一堆下载的资料,几百个文件名乱七八糟的,要是手动改得累死。于是写了这段代码:

import os

def rename_files(folder_path, prefix="整理后_"):
    # 获取文件列表
    files = os.listdir(folder_path)
    
    # 遍历处理每个文件
    for index, file_name in enumerate(files, 1):
        # 获取文件扩展名
        _, ext = os.path.splitext(file_name)
        # 组合新文件名
        new_name = f"{prefix}{index}{ext}"
        # 生成完整的文件路径
        old_path = os.path.join(folder_path, file_name)
        new_path = os.path.join(folder_path, new_name)
        # 重命名
        os.rename(old_path, new_path)
        print(f"已重命名: {file_name} -> {new_name}")

# 使用示例
rename_files("D:\下载文件夹")

这段代码一次就能把一个文件夹里的所有文件重命名,以前要花半小时的工作,现在几秒钟搞定。

告别在线工具,轻松合并PDF

上周要给财务部报销,要求把发票和单据合并成一个PDF。在网上找了半天在线工具,要么要收费,要么有文件大小限制。干脆自己写了个:

from PyPDF2 import PdfMerger
import os

def merge_pdfs(folder_path, output_name="合并后的文件.pdf"):
    # 创建合并器
    merger = PdfMerger()
    
    # 获取所有PDF文件
    pdf_files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')]
    
    # 按名称排序
    pdf_files.sort()
    
    # 依次添加PDF文件
    for pdf in pdf_files:
        file_path = os.path.join(folder_path, pdf)
        merger.append(file_path)
    
    # 保存合并后的文件
    output_path = os.path.join(folder_path, output_name)
    merger.write(output_path)
    merger.close()
    
    print(f"合并完成!文件保存在:{output_path}")

# 使用示例(需要先安装:pip install PyPDF2)
merge_pdfs("D:\PDF文件夹")

从此再也不用为合并PDF发愁了,而且本地处理更安全,不用担心文件泄露的问题。

日报生成器,解放你的双手

每天下班要写日报,有时候忙得要死还得绞尽脑汁想今天干了啥。这个小工具能帮你生成一个基础版本,改改就能用:

import datetime
import random

class DailyReportGenerator:
    def __init__(self):
        self.tasks = [
            "完成{project}项目的{task}",
            "处理{project}的{task}问题",
            "优化{project}的{task}功能",
            "评审{project}的{task}方案"
        ]
        
        self.projects = ["数据分析""自动化测试""性能优化""系统维护"]
        self.specific_tasks = ["数据处理""功能开发""bug修复""文档编写"]
        
    def generate_task(self):
        task_template = random.choice(self.tasks)
        return task_template.format(
            project=random.choice(self.projects),
            task=random.choice(self.specific_tasks)
        )
    
    def generate_report(self, task_count=4):
        today = datetime.datetime.now()
        
        report = f"工作日报 ({today.strftime('%Y-%m-%d')})\n\n"
        report += "今日完成工作:\n"
        
        for i in range(task_count):
            report += f"{i+1}{self.generate_task()}\n"
        
        report += "\n明日计划:\n"
        for i in range(2):
            report += f"{i+1}. 继续{self.generate_task()}\n"
        
        return report

# 使用示例
report_gen = DailyReportGenerator()
print(report_gen.generate_report())

记得根据自己的工作内容修改模板,生成后稍微改改就能用,比从零开始写快多了。当然这个只能作为写日报的参考,具体工作内容还是要如实记录。

文件自动备份,安全第一位

有天一个同事不小心删了重要文件,找IT恢复折腾了好久。从那以后我就写了这个自动备份的脚本:

import shutil
import os
import time
from datetime import datetime

def auto_backup(source_folder, backup_folder):
    # 确保备份文件夹存在
    if not os.path.exists(backup_folder):
        os.makedirs(backup_folder)
    
    # 生成备份文件夹名称(使用当前时间)
    backup_time = datetime.now().strftime('%Y%m%d_%H%M%S')
    backup_path = os.path.join(backup_folder, f'backup_{backup_time}')
    
    try:
        # 复制整个文件夹
        shutil.copytree(source_folder, backup_path)
        print(f"备份完成!文件保存在:{backup_path}")
        
        # 删除超过7天的旧备份
        clean_old_backups(backup_folder, days=7)
        
    except Exception as e:
        print(f"备份出错:{str(e)}")

def clean_old_backups(backup_folder, days):
    """删除指定天数之前的备份"""
    current_time = time.time()
    
    for folder in os.listdir(backup_folder):
        folder_path = os.path.join(backup_folder, folder)
        # 检查文件夹的创建时间
        creation_time = os.path.getctime(folder_path)
        if (current_time - creation_time) // (24 * 3600) >= days:
            shutil.rmtree(folder_path)
            print(f"已删除旧备份:{folder}")

# 使用示例
auto_backup(
    "D:\重要文件",  # 需要备份的文件夹
    "D:\文件备份"   # 备份存放的位置
)

这个脚本不仅能自动备份,还会自动清理老文件,省得占太多硬盘空间。配合Windows的任务计划,可以设置每天自动运行。

开始用Python可能会觉得有点麻烦,但一旦掌握了这些小技巧,工作效率真的能提升不少。这些代码都是我实际工作中一点点摸索出来的,希望也能帮到你。

使用之前记得先安装需要的包:

pip install PyPDF2

建议把这些代码保存成py文件,放在方便找到的地方,需要用的时候双击运行就行。

测试新人可以学习《测试人的 Python 工具书》书籍《性能测试 JMeter 实战》书籍