Python自动化办公之文件整理脚本分享

 更新时间:2023年08月01日 08:32:44   作者:Python数据开发  
这篇文章主要为大家分享了一个Python自动化办公脚本,可以实现文件整理,这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件,需要的可以收藏一下

哈喽大家好,今天给大家介绍python自动化办公-文件整理脚本

今天讲解文件整理脚本的实现过程。这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件。需求如下:

需求内容:给定一个打算整理的文件夹目录,这个脚本可以将该目录下的所有文件都揪出来,并且根据后缀名归类到不同的文件夹里。

python能力:使用python的内置模块os和shutil来操作文件和目录,使用glob模块来匹配文件名,使用with语句来打开和关闭文件。

实现步骤:

  • 导入需要的模块
  • 定义要整理的目录和要创建的子目录
  • 遍历目录下的所有文件,获取文件名和后缀名
  • 根据后缀名判断文件属于哪个子目录,如果不存在则创建
  • 使用shutil模块的move函数将文件移动到对应的子目录
  • 打印完成信息

教程面对的是小白级别的读者,所以我会尽量用简单明了的语言来解释每一行代码的作用,并且给出完整的代码示例。我希望你能跟着我一起学习,并且在自己的电脑上运行和测试这个脚本。

导入python的内置模块

首先,我们需要导入一些python的内置模块,它们可以帮助我们操作文件和目录。os模块提供了一些基本的文件系统功能,比如获取文件路径,创建和删除目录等。shutil模块提供了一些高级的文件操作功能,比如复制和移动文件等。glob模块可以让我们用通配符来匹配文件名,比如*.txt可以匹配所有后缀名为txt的文件。with语句可以让我们方便地打开和关闭文件,不用担心忘记关闭或者出现异常。下面是导入模块的代码:

# 导入需要的模块
import os
import shutil
import glob

定义要整理的目录和要创建的子目录

接下来,我们需要定义要整理的目录和要创建的子目录。我们假设要整理的目录是D:\test,里面有各种类型的文件,比如文本文件,图片文件,音频文件等。我们想要把这些文件按照后缀名归类到不同的子目录里,比如txt文件放到D:\test\txt,jpg文件放到D:\test\jpg,mp3文件放到D:\test\mp3等。我们可以用一个字典来存储这些子目录的信息,键是后缀名,值是对应的子目录路径。下面是定义目录的代码:

# 定义要整理的目录和要创建的子目录
source_dir = "D:\\test" # 要整理的目录
sub_dirs = { # 子目录信息
    ".txt": "D:\\test\\txt",
    ".jpg": "D:\\test\\jpg",
    ".mp3": "D:\\test\\mp3"
}

遍历目录下的所有文件,获取文件名和后缀名

然后,我们需要遍历要整理的目录下的所有文件,获取文件名和后缀名。我们可以用os模块的listdir函数来获取目录下的所有文件和子目录,然后用os模块的path.splitext函数来分割文件名和后缀名。我们还需要判断是否是文件,因为listdir函数会返回子目录,我们不需要处理它们。我们可以用os模块的path.isfile函数来判断是否是文件。下面是遍历目录的代码:

# 遍历目录下的所有文件,获取文件名和后缀名
for item in os.listdir(source_dir): # 遍历目录
    if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件
        file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名
        print(file_name, file_ext) # 打印文件名和后缀名

根据后缀名判断文件属于哪个子目录

接着,我们需要根据后缀名判断文件属于哪个子目录,如果不存在则创建。我们可以用字典的get方法来根据键获取值,如果键不存在则返回None。我们可以用os模块的path.exists函数来判断子目录是否存在,如果不存在则用os模块的makedirs函数来创建。下面是判断和创建子目录的代码:

# 根据后缀名判断文件属于哪个子目录,如果不存在则创建
        sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径
        if sub_dir: # 如果子目录路径存在
            if not os.path.exists(sub_dir): # 如果子目录不存在
                os.makedirs(sub_dir) # 创建子目录
                print(f"Created {sub_dir}") # 打印创建信息

将文件移动到对应的子目录

接下来,我们需要使用shutil模块的move函数将文件移动到对应的子目录。我们需要提供源文件路径和目标文件路径作为参数。我们可以用os模块的path.join函数来拼接路径。下面是移动文件的代码:

# 使用shutil模块的move函数将文件移动到对应的子目录
            source_file = os.path.join(source_dir, item) # 源文件路径
            target_file = os.path.join(sub_dir, item) # 目标文件路径
            shutil.move(source_file, target_file) # 移动文件
            print(f"Moved {source_file} to {target_file}") # 打印移动信息

打印完成信息

最后,我们需要打印完成信息,告诉用户整理工作已经完成。下面是打印完成信息的代码:

# 打印完成信息
print("Done!")

这样,我们就完成了一个简单的文件整理脚本。

完整代码

# 导入需要的模块
import os
import shutil
import glob
# 定义要整理的目录和要创建的子目录
source_dir = "D:\\test" # 要整理的目录
sub_dirs = { # 子目录信息
    ".txt": "D:\\test\\txt",
    ".jpg": "D:\\test\\jpg",
    ".mp3": "D:\\test\\mp3"
}
# 遍历目录下的所有文件,获取文件名和后缀名
for item in os.listdir(source_dir): # 遍历目录
    if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件
        file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名
        print(file_name, file_ext) # 打印文件名和后缀名
        # 根据后缀名判断文件属于哪个子目录,如果不存在则创建
        sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径
        if sub_dir: # 如果子目录路径存在
            if not os.path.exists(sub_dir): # 如果子目录不存在
                os.makedirs(sub_dir) # 创建子目录
                print(f"Created {sub_dir}") # 打印创建信息
            # 使用shutil模块的move函数将文件移动到对应的子目录
            source_file = os.path.join(source_dir, item) # 源文件路径
            target_file = os.path.join(sub_dir, item) # 目标文件路径
            shutil.move(source_file, target_file) # 移动文件
            print(f"Moved {source_file} to {target_file}") # 打印移动信息
# 打印完成信息
print("Done!")

如果你在自己的电脑上运行这个脚本,你会看到类似下面的输出:

test1 .txt
test2 .jpg
test3 .mp3
Created D:\test\txt
Moved D:\test\test1.txt to D:\test\txt\test1.txt
Created D:\test\jpg
Moved D:\test\test2.jpg to D:\test\jpg\test2.jpg
Created D:\test\mp3
Moved D:\test\test3.mp3 to D:\test\mp3\test3.mp3
Done!

到此这篇关于Python自动化办公之文件整理脚本分享的文章就介绍到这了,更多相关Python文件整理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python OpenCV之图片缩放的实现(cv2.resize)

    Python OpenCV之图片缩放的实现(cv2.resize)

    这篇文章主要介绍了Python OpenCV之图片缩放的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 详解一种用django_cache实现分布式锁的方式

    详解一种用django_cache实现分布式锁的方式

    这篇文章主要介绍了详解一种用django_cache实现分布式锁的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Python语法学习之正则表达式的使用详解

    Python语法学习之正则表达式的使用详解

    要想成功的进行字符串的匹配需要使用到正则表达式模块,正则表达式匹配规则以及需要被匹配的字符串。本文详细为大家介绍了如何利用正则表达式实现字符的匹配,感兴趣的可以了解一下
    2022-04-04
  • Django实现上传图片功能

    Django实现上传图片功能

    这篇文章为大家详细主要介绍了Django实现上传图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • python实现在线翻译

    python实现在线翻译

    这篇文章主要介绍了python实现在线翻译,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    网上很多PyQt5信号槽与界面分离的例子,但是真正开发起来很不方便,下面这篇文章主要给大家介绍了关于Pyqt5实战小案例之界面与逻辑分离的小计算器程序,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 简单了解Java Netty Reactor三种线程模型

    简单了解Java Netty Reactor三种线程模型

    这篇文章主要介绍了简单了解Java Netty Reactor三种线程模型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 利用Vscode进行Python开发环境配置的步骤

    利用Vscode进行Python开发环境配置的步骤

    这篇文章主要给大家介绍了关于如何利用Vscode进行Python开发环境配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • Python中关键字is与==的区别简述

    Python中关键字is与==的区别简述

    这篇文章主要介绍了Python中关键字is与==的区别,对于Python初学者有一定的借鉴学习价值,需要的朋友可以参考下
    2014-07-07
  • 一文搞懂Python中subprocess模块的使用

    一文搞懂Python中subprocess模块的使用

    subprocess是子流程,即进程的意思,该模块可以启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。本文将和大家聊聊subprocess模块的使用,需要的可以参考一下
    2022-11-11

最新评论