python筆記之按文件名搜索指定路徑下的文件

1.搜索文件名中以指定的字符串開頭(如搜索dll,結果中含有dll a,dll abc等)python

個人目錄下有dll a.txt和dll.txt文件app

 

其中a文件夾下還有這兩個文件spa

 

我但願經過python選擇尋找關鍵字dll來把這四個文件找出excel

 
import os

result=[]
def search(path=".", name=""):
for item in os.listdir(path):
item_path = os.path.join(path, item)
if os.path.isdir(item_path):
search(item_path, name)
elif os.path.isfile(item_path):
if name in item:
global result
result.append(item_path + ";")
print (item_path + ";", end="")

search(path=r"D:\newfile", name="dll")

 輸出結果:code

 

2.若是我只想找出名叫dll的txt,不要dll a.txt,即上文是關鍵字匹配,此次改成全匹配。那麼就要用到搜索指定的文件名blog

 只要將上文代碼中圖片

    if name in item:

  改成utf-8

     if name+".txt" == item:

  便可字符串

 

3.提取excel某一列中病人姓名並轉化爲拼音,根據拼音檢索某一路徑下的對應圖片路徑get

# -*-coding:utf-8-*-
import xlrd
import os
import re
from xlwt import *
from xpinyin import Pinyin
pa=None
myItem_path = []

def file_name(file_dir):
    for root, dirs, files in os.walk(file_dir):
        return(dirs) #當前路徑下全部非目錄子文件

def search(path=".", name="1"):
    for item in os.listdir(path):
        global pa
        item_path = os.path.join(path, item)
        if os.path.isdir(item_path):
            search(item_path, name)
            # if(t==None):pa=None
        elif os.path.isfile(item_path):
            if name+".jpg" == item:
                        myItem_path.append(item_path+";")
                        print (item_path+";",end="")
                        pa=myItem_path

#------------------讀數據--------------------------------
fileName="D:\\study\\xmu\\420\\廖希一\\數字化以後\\上機名單-2014,2015.xls"
bk=xlrd.open_workbook(fileName)
shxrange=range(bk.nsheets)
try:
    sh=bk.sheet_by_name("2014年")
except:
    print ("代碼出錯")
nrows=sh.nrows #獲取行數
book = Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1') #建立一個sheet
p = Pinyin()

for i in range(1,nrows):
    # row_data=sh.row_values(i)
    #獲取第i行第3列數據
    #
    #---------寫出文件到excel--------
    # if i==16:
    #     break
    a=p.get_pinyin( sh.cell_value(i,2), ' ')
    search(path=r"D:\study\xmu\420\廖希一\photo", name=a)
    myItem_path=[]
    print ("-----正在寫入 "+str(i)+"")
    sheet.write(i,0, label = sh.cell_value(i,2)) #向第1行第1列寫入獲取到的值
    sheet.write(i,1, label = sh.cell_value(i,4))#向第1行第2列寫入獲取到的值
    sheet.write(i,2, label=a)
    sheet.write(i,3, label=pa)
    pa=None
book.save("D:\\study\\xmu\\420\\廖希一\\數字化以後\\上機名單-2014+圖片路徑.xls")
相關文章
相關標籤/搜索