看thinking in java的時候發現有個題的答案不確定結果, 於是下載答案看下,結果是
這個樣子的,這樣要怎么才能找到相對應的答案?於是我就着手寫了一個快速遍歷的腳本(我這里只是單純的找了出來, 沒有把找到的文件單獨拿出來, 因為我的需求達到了,擴展項目是后來的人需要做的事情),話不多說,貼代碼
#!/usr/bin/env python # encoding: utf-8 ''' 1、讀取指定目錄下的所有文件 2、讀取文件,正則匹配出需要的內容,獲取文件名 3、打開此文件(可以選擇打開可以選擇復制到別的地方去) ''' import os.path import re # 遍歷指定目錄,顯示目錄下的所有文件名 def eachFile(filepath): pathDir = os.listdir(filepath) for allDir in pathDir: child = os.path.join('%s\%s' % (filepath, allDir)) if os.path.isfile(child): readFile(child) # print child.decode('gbk') # .decode('gbk')是解決中文顯示亂碼問題 continue eachFile(child) # 遍歷出結果 返回文件的名字 def readFile(filenames): fopen = open(filenames, 'r') # r 代表read fileread = fopen.read() fopen.close() t=re.search(r'clearSpitValve',fileread) if t: # print "匹配到的文件是:"+filenames arr.append(filenames) if __name__ == "__main__": filenames = 'D:\java\\answer\\Thinking in Java4 Answer' # refer root dir arr=[] eachFile(filenames) for i in arr: print i
滿足我的需求,需要做的事情 分3步
1、讀取指定目錄下的所有文件 2、讀取文件,正則匹配出需要的內容,獲取文件名 3、打開此文件
相對於java來說 ,用python寫的話能少寫20行左右的代碼,生產效率大大提高。人都舒服點