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!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    28

    文章

    5037

    浏览量

    77731
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
收藏 人收藏

    评论

    相关推荐

    介绍10个Python自动化脚本

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

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

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

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

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

    通过Python脚本实现WIFI密码的自动猜解

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的自动猜解。
    的头像 发表于 01-25 10:46 722次阅读
    通过<b class='flag-5'>Python</b><b class='flag-5'>脚本</b>实现WIFI密码的<b class='flag-5'>自动</b>猜解

    手机自动化测试方法

    `随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,手机APP自动化测试也逐渐兴起,从Monkey本地测试到云测试平台,现在我要介绍的这种自动化测试方法
    发表于 07-05 15:07

    手机自动化测试

    之前发布过小萝贝控机大师与按键精灵结合实现手机自动化测试的功能,小萝贝控机大师升级了实现了更多手机自动化测试的功能,如下:l手机功能自动化测试:录制脚本,检查点时点击小萝贝控机大师右边
    发表于 07-08 13:36

    【上海】猎头推荐职位-自动化测试工程师(java/python

    猎头职位:自动化测试工程师(java/python)工作职责:1.负责测试报告输出、项目风险评估,对测试结果负责;2.负责对产品进行接口测试/自动化测试/性能测试/安全测试等工作;3.参与产品需求
    发表于 06-28 17:37

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

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

    python控制CANoe实现自动化测试的方法

    ”完成了python控制CANoe实现自动化测试。那么,python能控制钉钉么?答案是可以的。那么用py
    发表于 12-29 08:12

    iOS自动化打包脚本

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

    云测试自动化中的Python

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

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

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

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

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

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

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

    keil自动化编译脚本

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