当前位置: 首页 > article >正文

自动化办公|使用Python重命名并移动文件到对应文件夹

在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求。例如,我们有一个包含多个文件的目录,文件名的首字符表示文件应该存放在哪个文件夹中。我们可以使用Python脚本来自动完成这个任务,实现文件的分类整理。本文将介绍如何通过Python编写一个脚本来实现以下功能:

  1. 检查并删除空文件夹
  2. 将文件按照文件名的首字符分类,移动到对应的文件夹中

1. 基本需求

假设我们有一个文件夹save,其中包含多个文件和一些空文件夹。我们需要做以下几件事:

  • 删除空文件夹:首先检查文件夹是否为空,如果是空文件夹,删除它。
  • 移动文件到对应文件夹:根据文件名的首字母,将文件移动到相应的文件夹中。

2. 实现代码解析

import os
import shutil

# 设置文件保存路径
save_path = './save'

# 遍历目录下的所有文件和文件夹
for file in os.listdir(save_path):
    # 如果是文件夹
    if os.path.isdir(os.path.join(save_path, file)):
        try:
            # 尝试删除空文件夹
            os.rmdir(os.path.join(save_path, file))
            print('删除空文件夹:', file)
        except Exception as e:
            # 如果文件夹不为空,捕获异常并输出错误信息
            print('>>>', e)
        continue

    # 获取文件名的首字母
    file_dir = os.path.join(save_path, file[0])

    # 如果目标文件夹不存在,则创建它
    if not os.path.exists(file_dir):
        os.mkdir(file_dir)

    # 移动文件到对应的文件夹
    shutil.move(os.path.join(save_path, file), os.path.join(file_dir, file))

3. 代码解释

3.1 os.listdir(save_path)

os.listdir(save_path) 会列出 save 文件夹下的所有文件和文件夹名称。返回的内容是一个包含文件名(包括文件夹和文件)的列表。

3.2 删除空文件夹
if os.path.isdir(os.path.join(save_path, file)):
    try:
        os.rmdir(os.path.join(save_path, file))
        print('删除空文件夹:', file)
    except Exception as e:
        print('>>>', e)
    continue
  • os.path.isdir:检查指定路径是否为文件夹。
  • os.rmdir:删除空文件夹。如果文件夹不为空,删除会失败并抛出异常,我们通过try-except来捕获异常并输出错误信息。
  • 如果该项是空文件夹,则打印提示信息并跳过该文件夹,继续处理其他文件。
3.3 根据文件首字母分类并移动文件
file_dir = os.path.join(save_path, file[0])

if not os.path.exists(file_dir):
    os.mkdir(file_dir)

shutil.move(os.path.join(save_path, file), os.path.join(file_dir, file))

  • file[0]:获取文件名的首字母,这决定了文件应该被分类到哪个文件夹中。
  • os.path.exists(file_dir):检查目标文件夹是否存在。如果不存在,则使用os.mkdir创建一个新文件夹。
  • shutil.move:将文件从源路径移动到目标路径。

4. 代码执行结果

运行该脚本后,系统会遍历save目录下的所有文件,执行以下操作:

  1. 删除所有空的文件夹。
  2. 根据每个文件名的首字母创建新的文件夹,并将文件移动到对应的文件夹中。

例如,假设save文件夹中有以下文件:

  • apple.txt
  • banana.docx
  • cat.pdf
  • 空文件夹folder1

执行脚本后,save目录下将会有三个新的文件夹:

  • a/,包含apple.txt
  • b/,包含banana.docx
  • c/,包含cat.pdf

空文件夹folder1将被删除。

5. 总结

这段Python代码通过osshutil模块实现了自动化的文件分类和空文件夹删除。这样的脚本在文件整理、数据清理等场景下非常有用。你可以根据实际需求修改文件夹分类规则,例如使用文件的扩展名、文件大小等作为分类标准。


http://www.kler.cn/a/512535.html

相关文章:

  • 媒体新闻发稿价格怎么算?移动端发稿价格低的原因有哪些?
  • 基于python+Django+mysql鲜花水果销售商城网站系统设计与实现
  • 解决npm install安装出现packages are looking for funding run `npm fund` for details问题
  • 力扣11-最后一个单词的长度
  • Vscode:问题解决办法 及 Tips 总结
  • Linux 使用 GDB 进行调试的常用命令与技巧
  • 基于微信小程序的医院挂号预约系统ssm+论文源码调试讲解
  • 基于行为分析的企业内网安全防护系统设计
  • 【大模型】ChatGPT 高效处理图片技巧使用详解
  • 《Vue3 十》Vue 底层原理
  • [gpu驱动] H200 nvidia-fabricmanager-550升级到nvidia-fabricmanager-565报错,升级步骤
  • Android 13 动态显示隐藏 HomeButton,RecentsButton
  • 100条Linux命令汇总
  • 微信小程序之 如何使用全局变量将openid传到其他页面
  • 【Tortoise-ORM】 高级特性与实战
  • Linux内核编程(二十一)USB驱动开发
  • 【Java数据结构】Java对象的比较
  • python如何导出数据到excel文件
  • 京东api接口获得JD商品详情接口PHP调用演示示例
  • 12 分布式事务
  • 深入 Flutter 和 Compose 的 PlatformView 实现对比,它们是如何接入平台控件
  • Pandas 数据重命名:列名与索引
  • Linux容器(初学了解)
  • Chromium 132 编译指南 Mac 篇(三)- 配置 depot_tools
  • Bash语言的数据库交互
  • 电气防火保护器为高校学生宿舍提供安全保障