Python脚本对文件分类

需求描述

对文件进行分类的标准

只处理文件后缀为 pdf,docx,doc,jpg 的文件,如果文件名中包含关键字,就将文件保存到相应的文件夹,剩余的保存到其他文件夹中。

首先创建python脚本文件,处理主要逻辑

filesort.py

import os
import sys
import shutil
import re
from shutil import copyfile
"""
注释 
修改path为文件真是路径
E:\test\  这样的路径是无法被程序识别的,必须是 \\
或者你可以 E:/test/   
"""
##print(sys.argv[1])
path = os.path.abspath('')
##print(path)
path = sys.argv[1]

exts = ["pdf","docx","doc","jpg"]

sort_folders = {
    "申请表":"申请表",
    "身份证及授权书":"委托,法人,授权,身份",
    "承诺":"承诺",
    "项目申请报告":"申请书",
    "地形图":"申请表",
    "核定用地图":"核定,公司",
    "其他":""
}

def listfiels(path,items):
    path = path.replace("\\", "/")
    mlist = os.listdir(path)
 
    for m in mlist:
        mpath = os.path.join(path, m)
        if os.path.isfile(mpath):
            pt = os.path.abspath(mpath)
            # print pt.decode("gbk").encode("utf-8") #会报错
            ##print(pt)
            for ext in exts:
                if(pt.endswith(ext)):
                    items[pt] = m
                    continue
        else:
            pt = os.path.abspath(mpath)
            listfiels(pt,items)



items = {}



listfiels(path,items)

##print(items)
dones = []

for key in sort_folders:
    new_folder_path = os.path.abspath(key)
    ##print(new_folder_path)
    if not os.path.exists(new_folder_path):
        os.makedirs(new_folder_path)
    
    value = sort_folders[key]
    if(value != ""):
        keywords = sort_folders[key].split(",")
        #print(keywords)
        for keyword in keywords:
            for fileKey in items:
                if(items[fileKey].find(keyword) >= 0):
                    copyfile(fileKey,os.path.join(new_folder_path,items[fileKey]))
                    dones.append(fileKey)
    else:
        ##print("k")
        for fileKey in items:
            if(fileKey not in dones):
                copyfile(fileKey,os.path.join(new_folder_path,items[fileKey]))
    
    
    ##print(items)

##print(files)

运维人员还是喜欢直接执行 bat 脚本 ,所以特意编译了一个调用 python脚本的 bat 批处理文件(ANSI 格式)。

filesort.bat

::必须安装python3.X运行时
::修改filesort.py 后面的路径参数"

python filesort.py E:\test测试

为了方便修改路径参数,创建 filesort.bat 批处理文件进行调用,注意 文件的编码选择 ANSI 进行保存,在UTF8的情况下,中文路径会无法运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值