page contents

Python实用教程:文件批量重命名与自动分类整理!

今天要跟大家分享一个特别实用的主题 - 如何用Python自动整理杂乱的文件夹。是不是经常为下载文件夹里一堆杂乱的文件头疼?让我们用Python来解决这个困扰!
attachments-2025-01-tKW4QRlK677b3224b6d3f.png
今天要跟大家分享一个特别实用的主题 - 如何用Python自动整理杂乱的文件夹。是不是经常为下载文件夹里一堆杂乱的文件头疼?让我们用Python来解决这个困扰!
基础知识准备
首先,我们需要了解Python中的os模块。它就像是我们的文件管理助手,可以帮我们完成各种文件操作。
import os
import shutil
from datetime import datetime

# 获取当前目录下的所有文件
files = os.listdir('downloads')
print(f"发现了 {len(files)} 个文件")
小贴士:在Windows系统中使用反斜杠()表示路径时,记得使用双反斜杠(\)或者直接使用正斜杠(/),因为单个反斜杠在Python中是转义字符。
文件重命名神器
想象一下,我们的文件就像是一群小朋友,每个都需要一个规范的名字。下面是一个批量重命名的示例:
def rename_files(directory):
    for filename in os.listdir(directory):
        # 获取文件创建时间
        file_path = os.path.join(directory, filename)
        timestamp = os.path.getctime(file_path)
        date = datetime.fromtimestamp(timestamp)
        
        # 新文件名:日期_原始文件名
        new_name = f"{date.strftime('%Y%m%d')}_{filename}"
        new_path = os.path.join(directory, new_name)
        
        # 重命名文件
        os.rename(file_path, new_path)
        print(f"已将 {filename} 重命名为 {new_name}")
注意事项:重命名之前最好先备份文件,以防万一。就像妈妈总说的:"小心驶得万年船"!
智能分类整理
现在让我们来写一个更智能的文件分类器,它能根据文件类型自动创建文件夹并移动文件:
def organize_files(directory):
    # 文件类型映射
    file_types = {
        'images': ['.jpg', '.jpeg', '.png', '.gif'],
        'documents': ['.pdf', '.doc', '.docx', '.txt'],
        'videos': ['.mp4', '.avi', '.mkv'],
        'music': ['.mp3', '.wav', '.flac']
    }
    
    for filename in os.listdir(directory):
        file_path = os.path.join(directory, filename)
        if os.path.isfile(file_path):
            # 获取文件扩展名
            ext = os.path.splitext(filename)[1].lower()
            
            # 确定文件类型
            for type_name, extensions in file_types.items():
                if ext in extensions:
                    # 创建分类文件夹
                    type_path = os.path.join(directory, type_name)
                    os.makedirs(type_path, exist_ok=True)
                    
                    # 移动文件
                    shutil.move(file_path, os.path.join(type_path, filename))
                    print(f"已将 {filename} 移动到 {type_name} 文件夹")
                    break
实战应用:日期归档器
让我们再来一个更实用的例子 - 按日期归档文件:
def archive_by_date(directory):
    for filename in os.listdir(directory):
        file_path = os.path.join(directory, filename)
        if os.path.isfile(file_path):
            # 获取文件修改时间
            timestamp = os.path.getmtime(file_path)
            date = datetime.fromtimestamp(timestamp)
            
            # 创建年月文件夹
            year_month = date.strftime('%Y-%m')
            archive_path = os.path.join(directory, year_month)
            os.makedirs(archive_path, exist_ok=True)
            
            # 移动文件
            shutil.move(file_path, os.path.join(archive_path, filename))
            print(f"已将 {filename} 归档到 {year_month} 文件夹")
小练习:
尝试修改代码,添加更多的文件类型支持
给文件重命名时添加序号,比如"20240106_001_文件名.txt"
思考如何处理同名文件的情况
进阶提示:
处理文件时要注意异常处理,比如文件占用、权限不足等情况
可以添加日志记录功能,方便追踪文件操作历史
考虑添加配置文件,让用户自定义文件类型和目标文件夹
小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

   
  • 发表于 2025-01-06 09:30
  • 阅读 ( 99 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1734 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1734 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章