前言

文件夹的文件很杂乱,我们应该怎么去自动整理并且分类呢?
写个简单的python脚本进行整理吧!

一、模块说明

import os       
import shutil   
import glob     

#os模块:提供的就是各种 Python 程序与操作系统进行交互的接口
#shutil模块:它作为os模块的补充,提供了复制、移动、删除、压缩、解压等操作
#glob模块:用来查找文件目录和文件,并将搜索的到的结果返回到一个列表中(通配符)

二、代码部分

1.选择要分类的文件夹

代码如下(示例):

#设置建立分类总文件夹路径
mkdir_path=r'D:\文件夹分类'

#设置需要遍历整理的文件夹路径,可以依据自己的实际需求修改
goal_dir =r'D:\乱七八糟的文件'

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

2.进行分类

代码如下(示例):

for file in glob.glob(f'{goal_dir}/**/*',recursive=True):
    if os.path.isfile(file):
        filename = os.path.basename(file)
        if '.' in filename:
            suffix = filename.split('.')[-1]
        else:
            suffix = 'others'
        if not os.path.exists(f'{mkdir_path}/{suffix}'):
            os.mkdir(f'{mkdir_path}/{suffix}')
        shutil.copy(file,f'{mkdir_path}/{suffix}')

os.path.isfile()主要就是判断文件是否为常规文件 。
os.path.basename()用来获取路径最后一部分内容 如:D:\乱七八糟的文件\123.txt 获取的就是123.txt
split(‘.’)[-1]就是通过点分割字符串,去字符串切割后的最后一部分 。
剩下的代码主要就是一些文件存在判断。

3.完整代码

代码如下(示例):

import os       #操作系统操作
import shutil   #文件复制、移动等
import glob     #通配符进行文件的搜索获取

#设置建立分类总文件夹路径
mkdir_path=r'D:\文件夹分类'

#设置需要遍历整理的文件夹路径,可以依据自己的实际需求修改
goal_dir =r'D:\乱七八糟的文件'

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

file_num=0
dir_num=0

for file in glob.glob(f'{goal_dir}/**/*',recursive=True):
    if os.path.isfile(file):
        filename = os.path.basename(file)
        if '.' in filename:
            suffix = filename.split('.')[-1]
        else:
            suffix = 'others'
        if not os.path.exists(f'{mkdir_path}/{suffix}'):
            os.mkdir(f'{mkdir_path}/{suffix}')
            dir_num+=1
        shutil.copy(file,f'{mkdir_path}/{suffix}')
        file_num+=1

print(f'整理完成,有{file_num}个文件分类到了{dir_num}个文件夹中')



总结

今天主要使用python写了一个简单的文件分类功能的脚本,以上内容还有许多可以改进的地方,读者可以自行进行改进,如切割判断,如果文件中间有点就会误判等,文件夹还可以通过命令行手动输入。

Logo

GitCode AI社区是一款由 GitCode 团队打造的智能助手,AI大模型社区、提供国内外头部大模型及数据集服务。

更多推荐