0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python自动化脚本办公-文件整理

麦辣鸡腿堡 来源:Python都知道 作者:了不起 2023-07-20 09:49 次阅读

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

  • 需求内容:给定一个打算整理的文件夹目录,这个脚本可以将该目录下的所有文件都揪出来,并且根据后缀名归类到不同的文件夹里。
  • 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:testtxt,jpg文件放到D:testjpg,mp3文件放到D:testmp3等。我们可以用一个字典来存储这些子目录的信息,键是后缀名,值是对应的子目录路径。下面是定义目录的代码:

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

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

然后,我们需要遍历要整理的目录下的所有文件,获取文件名和后缀名。我们可以用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:	est" # 要整理的目录
sub_dirs = { # 子目录信息
    ".txt": "D:	est	xt",
    ".jpg": "D:	estjpg",
    ".mp3": "D:	estmp3"
}

# 遍历目录下的所有文件,获取文件名和后缀名
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:testtxt
Moved D:testtest1.txt to D:testtxttest1.txt
Created D:testjpg
Moved D:testtest2.jpg to D:testjpgtest2.jpg
Created D:testmp3
Moved D:testtest3.mp3 to D:testmp3test3.mp3
Done!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    29

    文章

    5570

    浏览量

    79265
  • 文件
    +关注

    关注

    1

    文章

    566

    浏览量

    24737
  • python
    +关注

    关注

    56

    文章

    4796

    浏览量

    84664
收藏 人收藏

    评论

    相关推荐

    介绍10个Python自动化脚本

    在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。那么在本文中,我将向您介绍 10 个 Python 自动化
    发表于 10-17 09:27 940次阅读

    10个Python脚本来自动化你的日常任务

    今天浩道跟大家分享几个关于python自动化日常工作的实用案例脚本
    发表于 10-25 09:04 725次阅读

    10个杀手级的Python自动化脚本

    今天浩道跟大家分享10个日常工作中用到的python自动化脚本。让你感受一番python简单强大之处!
    发表于 11-28 11:07 684次阅读

    python自动化控制设备 精选资料分享

    python自动化控制设备,辛辛苦苦读个大学或者研究生谁不想每天早九晚五呢?谁不想天天坐办公室呢?普通本科机械设计制造及其自动化专业,本科期间参加过高数、数学建模、机器人、数控、无碳小
    发表于 07-19 07:00

    自动化测试脚本开发技巧

    开发自动化测试脚本的技巧和心得软件测试 增量式调试脚本 录制测试脚本,和其他的软件开发成果一样,会变得非常大。为了可以成功的回放,需要调试几百行的代码,为了参数
    发表于 03-26 16:24 53次下载

    iOS自动化打包脚本

    iOS自动化打包脚本,地址:(https://github.com/hades0918/ipapy) iOS项目自动打包脚本 1.脚本
    发表于 10-12 16:47 0次下载

    Python】如何将Python脚本打包成exe可执行文件

    Python实用技巧】如何将Python脚本打包成exe可执行文件
    的头像 发表于 08-18 12:40 1.8w次阅读
    【<b class='flag-5'>Python</b>】如何将<b class='flag-5'>Python</b><b class='flag-5'>脚本</b>打包成exe可执行<b class='flag-5'>文件</b>

    云测试自动化中的Python

      用于测试的编程需要与开发应用程序的编程不同的方法。如果你想要一种专门用于测试编码的简单而精简的语言,Python 是一个不错的选择。Python 测试自动化框架为验证、数据生成和脚本
    的头像 发表于 12-09 14:53 828次阅读

    10个杀手级的Python自动化脚本分享

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python [自动化
    的头像 发表于 01-06 15:34 756次阅读

    分享10个实用的Python自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化
    的头像 发表于 01-21 15:58 1335次阅读

    使用Python脚本实现自动化运维任务

    许多运维工程师会使用 Python 脚本来自动化运维任务。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于许多不同的领域。
    的头像 发表于 04-08 10:36 1689次阅读

    Facebook群组自动化python – 网络自动化

    电子发烧友网站提供《Facebook群组自动化python – 网络自动化.zip》资料免费下载
    发表于 07-05 14:26 0次下载
    Facebook群组<b class='flag-5'>自动化</b><b class='flag-5'>python</b> – 网络<b class='flag-5'>自动化</b>

    modelsim自动化仿真实验 利用脚本实现modelsim自动化仿真

    大家好!今天给大家带来的是modelsim自动化仿真程序。我们在代码编写完成时,通常都需要先进行仿真,然后上板实验。但是如果我们每次仿真都要去新建一个工程,添加.v文件以及testbench文件
    的头像 发表于 07-19 10:10 1664次阅读
    modelsim<b class='flag-5'>自动化</b>仿真实验 利用<b class='flag-5'>脚本</b>实现modelsim<b class='flag-5'>自动化</b>仿真

    keil自动化编译脚本

    这是一个 keil 的自动化编译脚本,可被其他脚本或程序调用,接收参数并按参数编译 keil 工程,而不必打开 keil 软件,实现程序上的自动化
    的头像 发表于 10-16 17:04 1900次阅读
    keil<b class='flag-5'>自动化</b>编译<b class='flag-5'>脚本</b>

    如何使用Python编写脚本来自动发送邮件

    Python是一种非常流行的编程语言,可以用于多种用途,包括自动化任务。其中一个常见的自动化任务是自动发送邮件。在本文中,我们将介绍如何使用Pyth
    的头像 发表于 12-07 11:36 1358次阅读