【初入职场】文件地狱大逃亡:运维侠Python自动化逆袭之路4自动创建文件夹、自动整理文件、整理术(日省3h摸鱼真经)

一. “一两” 的烦恼

又来新同事,不知其名,但遇到问题他口头禅:“这不叫事,一两酒的事!”所以,大家喜欢叫他“一两“;

这不叫事的“一两“,也遇到了事;其实,这事说大不大,可是闹得‘一两’要离开公司。

原来“老东北”平时乱糟糟的,体现在工作上,三年的文件,公用电脑从桌面到里面,全是乱糟糟的,“老东北”一忙,“一两”连需要的文件都找不到,更别说还有新人要面对的其他问题了。“老东北”可不是运维侠小白,直接给“老球”打小报告,“老球”还是那句耳熟能详的话,“让他马上滚蛋”。

运维侠小白想帮帮“一两”,于是去请教了他“女朋友”…
在这里插入图片描述

打工人必中的3大文件诅咒

打工人对混乱桌面的痛苦

“文件地狱”:新员工面对3年混乱的文件该如何
“僵尸文件夹”:找去年方案翻遍8层文件夹
“重复工作”:创建半年日工作报告

血咒总结得出,普通人年均浪费87小时在找文件

你不是在找文件,就是在找文件的路上。

从“桌面迷宫”到“极简禅境”,代码让文件自动列队喊你爸爸!

操作方式时间消耗错误率
手动300分钟高出错
Python自动化3分钟0

Python基础自动化处理文件案例

二.代码示例

⚠️提示:这是我的一个文件夹,我们将它整理,用于演示。

在这里插入图片描述

整体工作流程
以整理货物为例

[运行脚本文件] --> [创建分类货架]
 --> [扫描原始货架]
 --> {判断商品类别}
 -->|匹配成功| --> [放入对应货架]
 -->|无匹配|   --> [留在原位]
 --> [检查是否重复] --> [重复的修改标签]
 --> [完成整理]

⚠️避免报错:

  1. 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。

(1)创建分类文件夹

学会数据类型之字典
🚨 字典:categories像分类标签卡片,字典的键只能有一个,但可以对应多个值。
💻 代码:输出字典里的值

import os
# 创建分类文件夹
categories= {
    "代码": [".py"],
    "图片": [".jpg",".png"],
    "文档": [".docx",".xlsx"]
             }
for category in categories:
    print(category)

执行代码效果:输出了字典里的值,证明成功!只要在循环里加入创建文件的命令即可创建所需文件夹
在这里插入图片描述

💻 代码:

import os
categories= {
    "代码": [".py"],
    "图片": [".jpg",".png"],
    "文档": [".docx",".xlsx"]
             }
for category in categories:
    dir_path = os.path.join("整理后的文件", category)
    os.makedirs(dir_path, exist_ok=True) # 创建分类文件夹

🚨 关键内容释义:
os.makedirs():相当于搭建新货架
exist_ok=True:表示如果货架已存在就不重复搭建

执行代码效果:
在这里插入图片描述

(2)查看需要整理的文件夹内容

💻 代码:

# 查看文件夹内容
import os
# 指定要整理的文件夹(示例用桌面,实际可修改)
folder_path = r"C:\Users\ZHAOY\PycharmProjects\1"
all_files = os.listdir(folder_path)

# 显示所有文件(就像把针线倒出来)
for file in all_files:
    print(f"{file}")

执行代码效果:
在这里插入图片描述

(3)移动单个文件

💻 代码:

import shutil
# 定义源文件、目标文件夹的变量信息
src_file = r"C:\Users\ZHAOY\PycharmProjects\1\girlfriend.png"
dest_dir = "整理后的文件/图片"
# 调用移动函数,去移动
shutil.move(src_file,dest_dir)

执行代码效果:
在这里插入图片描述

(4)避免文件、文件夹名称重复

🚨名称重复,自动改名。 如果文件夹里存在2.png就返回重命名的文件名2(1).png。
💻 代码:

import os
def 生成不重复文件名(文件夹, 原文件名):
    """✅ 保证文件名不重复:重复的文件名自动改名"""
    主名, 后缀 = os.path.splitext(原文件名)  # 拆开名字和尾巴(如 .jpg)
    新名字 = 原文件名  # 初始用原文件名
    编号 = 1

    # 📂 检查文件柜是否有重名文件
    while os.path.exists(os.path.join(文件夹, 新名字)):
        新名字 = f"{主名}({编号}){后缀}"  # 添加编号
        编号 += 1  # 数字+1

    return 新名字  # ✅ 返回最终确定的名字
print(生成不重复文件名(r"C:\Users\ZHAOY\PycharmProjects\1", "2.png"))
# 如果已有"名称相同.png",返回"名称相同(1).jpg"

执行代码效果:
当C:\Users\ZHAOY\PycharmProjects\1文件夹里不存在2.png,输出原文件名2.png
在这里插入图片描述
当C:\Users\ZHAOY\PycharmProjects\1文件夹里存在2.png,输出原文件名2(1).png
在这里插入图片描述

(5)完整脚本

🚨注意:不要存在“整理后的文件”这个名称文件夹,否则,会重复创建
💻 代码:

# final_文件整理大师.py
# 注意:不要存在“整理后的文件”这个名称文件夹,否则,会重复创建
import os
import shutil

def 整理文件(原文件夹, 目标文件夹="整理后的文件"):
    # 创建分类字典
    文件类型 = {
        "图片": [".jpg", ".jpeg", ".png", ".gif"],
        "文档": [".doc", ".docx", ".pdf", ".txt"],
        "音乐": [".mp3", ".wav", ".flac"],
        "视频": [".mp4", ".mov", ".avi"],
        "其他": []
    }

    # 创建分类文件夹
    for 类别 in 文件类型:
        os.makedirs(os.path.join(目标文件夹, 类别), exist_ok=True)

    # 遍历整理文件
    for 文件名 in os.listdir(原文件夹):
        # 跳过隐藏文件和文件夹
        if 文件名.startswith('.') or os.path.isdir(os.path.join(原文件夹, 文件名)):
            continue

        # 获取文件扩展名
        扩展名 = os.path.splitext(文件名)[1].lower()

        # 确定文件类别
        目标类别 = "其他"
        for 类别, 扩展列表 in 文件类型.items():
            if 扩展名 in 扩展列表:
                目标类别 = 类别
                break

        # 处理文件路径
        原路径 = os.path.join(原文件夹, 文件名)
        目标路径 = os.path.join(目标文件夹, 目标类别, 文件名)

        # 处理重复文件
        唯一文件名 = get_unique_path(os.path.join(目标文件夹, 目标类别), 文件名)
        最终路径 = os.path.join(目标文件夹, 目标类别, 唯一文件名)

        # 移动文件
        shutil.move(原路径, 最终路径)
        print(f"已整理:{文件名}{目标类别}")

def get_unique_path(目标文件夹, 文件名):
    """生成不重复的文件名"""
    主名, 扩展名 = os.path.splitext(文件名)
    序号 = 1
    while os.path.exists(os.path.join(目标文件夹, 文件名)):
        文件名 = f"{主名}({序号}){扩展名}"
        序号 += 1
    return 文件名

if __name__ == "__main__":
    # 使用示例(修改为您的实际路径)
    整理文件(r"C:\Users\ZHAOY\PycharmProjects\1")
    print("文件整理完成!已焕然一新!")

执行代码效果:
在这里插入图片描述

⏰扩展:平时我们需要被整理的文件类型,整理后的文件夹需求和示例的不一样,可根据实际需要略微修改代码即可!

💡 朋友们!你平时用Excel最头疼的操作是什么?
💡在评论区告诉我,下期教你用Python搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值