python批量归类处理同类、同名文件、批量读取文件(资料整理、办公必备!)

文章介绍了一种利用Python脚本自动整理PDF文件的方法,特别是针对按年份分类但需按公司归档的情况。通过os和shutil模块,脚本遍历文件夹,识别文件名中的关键词,创建相应公司名称的文件夹并将文件移动进去,从而实现批量高效整理。
摘要由CSDN通过智能技术生成

从网站下载的pdf或其他格式文件一般都是按年份分类的,如果我们想要按公司进行整理,例如,将一个公司各年份的年报都整理到一个文件夹,在公司数目很多的情况下,手动要耗费大量时间,下面是通过几段Python代码轻松解决这个问题。

首先,导入需要的模块

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import os 
import ssl 

然后,定义一个可以读取指定路径的文件名的函数

def file_name_paths(path='D:/UP', find=None, case_sensitive=False):
    '''目录下的所有文件,包括子目录,返回值为多个文件的完整路径列表
        path: 路径
       find:None:关闭过滤(搜索功能)
             '.csv' 过滤.csv的文件
       case_sensitive :区分大小写 默认为不区分
    '''
    path_collection=[]
    for dirpath,dirnames,filenames in os.walk(path):
            for file in filenames:
                    fullpath=os.path.join(dirpath,file)
                    if '~$' not in file.upper():
                        if case_sensitive:
                            if find:
                                if find in file:
                                    path_collection.append(fullpath)
                            else:
                                path_collection.append(fullpath)
                        else:
                            if find:
                                if find.upper() in file.upper():
                                    path_collection.append(fullpath)
                            else:
                                path_collection.append(fullpath)
                    else:
                        pass
    return path_collection

锁定我们要分类的关键词,首次查询到关键词建立文件夹,后续将识别到关键词的文件放入文件夹即可。文件夹以关键词命名。

每次读取不同的文件夹,只需要改变路径path、path_1和关键词字段a(可以先print出a的结果多试几次,找到想要的关键词字段)

import shutil
file_name_list = file_name_paths(path=r'C:\Users\DELL\Desktop\住宿\2020住宿和餐饮业')
print(file_name_list)
for i in range(len(file_name_list)-2):
    a = file_name_list[i][36:42]
#a是指定的文件关键词,对于不同的分类问题和文件夹路径,关键词需要修改,只需改变[]中数字即可
    path = r'C:\Users\DELL\Desktop\住宿\2020住宿和餐饮业\\'+a
    folder = os.path.exists(path)
    if not folder:  
        os.mkdir(path)
        shutil.move(file_name_list[i],path)
        if a in file_name_list[i+1]:
            shutil.move(file_name_list[i+1],path)
        else:
            path_1 = r'C:\Users\DELL\Desktop\住宿\2020住宿和餐饮业\\'+file_name_list[i+1][36:42]
            os.mkdir(path_1)
            shutil.move(file_name_list[i+1],path_1)   
        if a in file_name_list[i+2]:
            shutil.move(file_name_list[i+2],path)

最后文件的分类结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值