1. 程式人生 > 其它 >Python開發練習-Python查詢當前目錄及子目錄內所有Excel檔案裡是否存在目標數字字元

Python開發練習-Python查詢當前目錄及子目錄內所有Excel檔案裡是否存在目標數字字元

技術標籤:Pythonpythonexcelwindows

Python查詢當前目錄及子目錄內所有Excel檔案裡是否存在目標數字字元demo。
1. 遍歷當前目錄及所有子目錄;
2. 讀取所有xls和xlsx檔案;
3. 查詢目標以四位數字字元為例;
4. 返回資訊為檔名,找到的位置資訊。
import time
import os
import xlrd
import copy
import pathlib

def getusefile():
    #查當前目錄下所有xls xlsx檔案,返回檔名列表
    usefile=[]
    excelfile=sorted(pathlib.
Path('.').glob('**/*.xls*')) usefile=[str(tpfile) for tpfile in excelfile] return copy.deepcopy(usefile) def rdusefile(fileName,checknum): #讀一個檔案,並在檔案單元格中查詢目標資料,如果找到就返回檔名及資料 data=xlrd.open_workbook(fileName) #開啟當前目錄下名為 fileName 的文件 worksheets = data.
sheet_names() #返回book中所有工作表的名字 findout=[] for filenum in range(len(worksheets)): #開啟excel檔案的第filenum張表 sheet_1=data.sheets()[filenum] #通過索引順序獲取sheet表 nrows=sheet_1.nrows #獲取該sheet中的有效行數 ncols=sheet_1.ncols #獲取該sheet中的有效列數
getdata=[] #讀取檔案資料 for i in range(0,nrows): tep1=[] for j in range(0,ncols): tep1.append(sheet_1.row(i)[j].value) if tep1: getdata.append(tep1) #在檔案資料中查詢目標資料,按字串處理資料 if getdata: for linedata in getdata: for index,numtp in enumerate(linedata): try: if str(int(numtp))==str(int(checknum)): local=fileName.split('.') if int(linedata[index-1])<1000: weizhi=str(int(linedata[index-1])) else: weizhi=str(int(linedata[index])) findout.append(local[0]+'---'+weizhi) except: pass return copy.deepcopy(findout) def checknum(num0): #在當前目錄的所有Excel表裡找一個數字的位置 #獲取當前目錄內所有Excel 檔案列表 filelist=getusefile() check=[] #在每一個檔案中查詢目標資料 if filelist: for filetp in filelist: findout=rdusefile(filetp,num0) if findout: check.extend(findout) return copy.deepcopy(check) if __name__ == '__main__': checkall=checknum('1104') #查數字在哪裡 print('\n'.join(checkall))
關注Python開發練習,200G學習資源免費送,還可以免費處理2.5小時以內的各類小Task。