当前位置:首页>python>每天重复3小时的活,Python帮我10分钟搞定(附完整代码)

每天重复3小时的活,Python帮我10分钟搞定(附完整代码)

  • 2026-10-11 07:19:15
每天重复3小时的活,Python帮我10分钟搞定(附完整代码)

每天重复3小时的活,Python帮我10分钟搞定(附完整代码)

大家好

先问一个问题:你每天有多少时间花在复制粘贴、整理文件、处理Excel这些重复性工作上?

上周,我旁边工位的同事对着电脑疯狂操作,从早上9点干到下午5点,就为了整理100多个Excel表格[reference:5]。而我只用了10分钟写了个Python脚本,一键搞定。

今天,我就把这套职场必备的Python自动化脚本库分享出来。全部代码可直接复制运行,覆盖文件整理、Excel处理、PDF操作、批量重命名等最常用的场景[reference:6]。


一、场景1:文件自动整理——再也不用手动分类了

每天下载的文件堆满桌面?这个脚本帮你按文件类型自动分类。

import osimport shutil# 文件类型映射FILE_TYPES = {    '图片': ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.svg'],    '文档': ['.doc', '.docx', '.pdf', '.txt', '.xls', '.xlsx', '.ppt', '.pptx'],    '压缩包': ['.zip', '.rar', '.7z', '.tar', '.gz'],    '视频': ['.mp4', '.avi', '.mov', '.mkv', '.flv'],    '音频': ['.mp3', '.wav', '.aac', '.flac'],    '代码': ['.py', '.js', '.html', '.css', '.java', '.cpp', '.go'],}def auto_sort_files(folder_path):    ”””自动将文件夹内的文件按类型分类到子文件夹”””    if not os.path.exists(folder_path):        print(f”❌ 文件夹不存在: {folder_path}”)        return# 遍历文件夹内所有文件    for filename in os.listdir(folder_path):        file_path = os.path.join(folder_path, filename)        if os.path.isdir(file_path):            continue# 跳过子文件夹# 获取文件扩展名        _, ext = os.path.splitext(filename)        ext = ext.lower()# 找到对应的分类文件夹        target_folder = '其他'        for category, extensions in FILE_TYPES.items():            if ext in extensions:                target_folder = category                break# 创建目标文件夹并移动文件        target_path = os.path.join(folder_path, target_folder)        os.makedirs(target_path, exist_ok=True)        shutil.move(file_path, os.path.join(target_path, filename))        print(f”✅ 已移动: {filename} -> {target_folder}/”)# 使用示例:整理当前目录下的文件if __name__ == ”__main__”:    auto_sort_files(”.”)

二、场景2:批量文件重命名——告别一个一个改

几百个文件需要统一命名格式?3行代码搞定
import osdef batch_rename(folder_path, prefix, start_num=1):    """批量重命名文件:统一添加前缀+序号"""    files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]    files.sort()  # 按名称排序    for i, filename in enumerate(files, start=start_num):        # 获取文件扩展名        _, ext = os.path.splitext(filename)        # 新文件名:前缀_序号.扩展名        new_name = f"{prefix}_{i:03d}{ext}"        old_path = os.path.join(folder_path, filename)        new_path = os.path.join(folder_path, new_name)        os.rename(old_path, new_path)        print(f"✅ {filename} -> {new_name}")# 使用示例:将当前目录所有文件重命名为 "报告_001.jpg" 格式if __name__ == "__main__":    batch_rename(".", "报告")

三、场景3:Excel数据合并——100个表1秒汇总

运营、财务、HR最需要的功能:把多个Excel文件合并成一个-。
import pandas as pdimport osdef merge_excel_files(folder_path, output_file="合并结果.xlsx"):    """合并文件夹内所有Excel文件"""    all_data = []    for filename in os.listdir(folder_path):        if filename.endswith(('.xlsx', '.xls')):            file_path = os.path.join(folder_path, filename)            try:                df = pd.read_excel(file_path)                all_data.append(df)                print(f"✅ 已读取: {filename} ({len(df)}行)")            except Exception as e:                print(f"❌ 读取失败: {filename} - {e}")    if all_data:        result = pd.concat(all_data, ignore_index=True)        result.to_excel(output_file, index=False)        print(f"🎉 合并完成!共 {len(result)} 行,保存为: {output_file}")    else:        print("❌ 未找到任何Excel文件")if __name__ == "__main__":    merge_excel_files(".")  # 合并当前目录所有Excel

四、场景4:PDF批量合并——把零散文件变整本

import PyPDF2import osdef merge_pdfs(folder_path, output_file="合并.pdf"):    """合并文件夹内所有PDF文件"""    pdf_writer = PyPDF2.PdfWriter()    pdf_files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')]    pdf_files.sort()    for filename in pdf_files:        file_path = os.path.join(folder_path, filename)        try:            with open(file_path, 'rb') as f:                pdf_reader = PyPDF2.PdfReader(f)                for page in pdf_reader.pages:                    pdf_writer.add_page(page)            print(f"✅ 已添加: {filename} ({len(pdf_reader.pages)}页)")        except Exception as e:            print(f"❌ 处理失败: {filename} - {e}")    with open(output_file, 'wb') as f:        pdf_writer.write(f)    print(f"🎉 合并完成!共 {len(pdf_writer.pages)} 页,保存为: {output_file}")if __name__ == "__main__":    merge_pdfs(".")  # 合并当前目录所有PDF

五、场景5:重复文件查找——释放硬盘空间

import osimport hashlibdef find_duplicates(folder_path):    """查找文件夹内的重复文件"""    hash_map = {}    duplicates = []    for dirpath, _, filenames in os.walk(folder_path):        for filename in filenames:            file_path = os.path.join(dirpath, filename)            try:                # 计算文件MD5                with open(file_path, 'rb') as f:                    file_hash = hashlib.md5(f.read()).hexdigest()                if file_hash in hash_map:                    duplicates.append((file_path, hash_map[file_hash]))                else:                    hash_map[file_hash] = file_path            except Exception:                pass    if duplicates:        print(f"🔍 发现 {len(duplicates)} 组重复文件:")        for dup, original in duplicates:            print(f"  重复: {dup}")            print(f"  原始: {original}\n")    else:        print("✅ 未发现重复文件")    return duplicatesif __name__ == "__main__":    find_duplicates(".")  # 查找当前目录重复文件[reference:10]

六、使用说明

运行前需要安装依赖库(打开终端/命令行执行):

pip install pandas openpyxl PyPDF2

运行方式:

  1. 把上面任意一个脚本复制到 .py 文件中

  2. 把要处理的文件放在脚本同一目录下(或修改 folder_path 参数)

  3. 双击运行,或者终端执行 python 文件名.py

写在最后

以上5个脚本,覆盖了文件整理、批量重命名、Excel合并、PDF合并、查重五个最常用的场景-。

💡 一个小建议:不要一次性全复制粘贴。先挑一个你最需要的场景,跑通之后自然就知道怎么举一反三了。

 附录:依赖库安装命令

# 一次性安装所有依赖pip install pandas openpyxl PyPDF2

本文所有代码均在 Python 3.8+ 环境下测试通过。

为了帮大家**真正用起来,而不是收藏吃灰**,我决定把这份福利升级一下:

 🎁 福利:Python 入门大礼包(限时免费领)

关注我的公众号  ,在后台回复关键词 **学习** ,即可免费领取:

- 📺 **400 集 Python 零基础入门视频教程**(从环境搭建到项目实战,全套高清视频)

- 📚  100本 Python 经典电子书**(包括《Python编程:从入门到实践》《流畅的Python》等豆瓣高分书籍)

> 这些资料是我当初自学时精心收集的,覆盖了从零基础到进阶的所有知识点,配合今天的自动化脚本实战,效果翻倍。

最后的最后

如果你觉得这篇文章对你有帮助,**请不要吝啬你的「赞」和「在看」**,这能帮助更多被重复工作困扰的朋友看到。

最新文章

随机文章