天天看点

python筛选特定文件名的文件(无需安装模块关键词筛选,无视不同格式)

import os
import numpy as np
import pandas as pd
import shutil

#os 和 shutil都是python自带模块不用安装

file_path='G:\\360MoveData\\Users\Administrator\\Desktop\\曲线数据' 
#被筛选文件所在路径

filename_path='G:\\360MoveData\\Users\\Administrator\\Desktop\\qw.xlsx' 
#目标文件名称列表
houzhuijiaxiaoshudianweishu=4
#这里要更改目标文件的后缀名加上一个小数点的位数 例子.xlsx 对应的位数为5
filelist=os.listdir(file_path)           
#获取被筛选文件夹中的被筛选文件名称

file_name=pd.read_excel(filename_path,sheet_name='Sheet1')   

#读取所需文件列表 将目标文件名读取并储存在file_name中
#读入excel数据是一个dataframe格式数据 需要转换成list
file_name=file_name.iloc[0:190,0:1]#取第一列的固定行数,存储的是目标文件名列形式
file_name
file_name = np.array(file_name)
#np.ndarray()
file_name=file_name.tolist()
print(file_name)
#list
#这里的list是[[1],[2],[3],[4]]需要转换成[1,2,3]
b=[] 
for i in file_name: 
    for j in i:
        b.append(j) 
file_name=b
#完成转换
n=0
m=0
#将被筛选文件名遍历,依次对照目标文件名组成的列表
for file in filelist :
    olddir=os.path.join(file_path,file)
    print(olddir)
     #如果被筛选当前个体文件名存在于目标名单,将把该文件复制到目标文件夹(结果)
    file_quhouzhui = file[:-houzhuijiaxiaoshudianweishu]
    if file_quhouzhui in file_name :
        print(file,'在目标目录中')
        n = n+1
        print(n)
        F="G:\\360MoveData\\Users\Administrator\\Desktop\\长庆项目整理过的文件\\解剖区测井"   
        #新文件夹名称(先建好)用于存放结果文件
        newdir=os.path.join(F,file) 
        #file是一个带有文件类型后缀的字符串,与F连接起来生成新的存储路径
        shutil.copy(olddir,newdir)     
        #复制到新文件夹中 shutil.copy(文件1,文件2):拷贝文件和权限都进行copy。把1拷贝给2
    else :
        print(file,'不在目标目录中')
        m=m+1
        continue
print('不符合的文件数',m)
print('符合的文件数',n)
           

继续阅读