天天看點

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)
           

繼續閱讀