本文執行個體講述了python實現搜尋本地檔案資訊寫入檔案的方法。分享給大家供大家參考,具體如下:
主要功能:
在指定的盤符,如D盤,搜尋出與使用者給定尾碼名(如:jpg,png)相關的檔案,然後把搜尋出來的資訊(相關檔案的絕對路徑),存放到使用者指定的檔案(如果檔案不存在,則建立相應的檔案)中
先卡看運行效果吧:
運行效果的前部分:
運行效果的後部分:
寫入資訊後的檔案:
代碼部分:
#在指定的盤符,如D盤,搜尋出與使用者給定尾碼名(如:jpg,png)相關的檔案#然後把搜尋出來的資訊(相關檔案的絕對路徑),存放到使用者指定的#檔案(如果檔案不存在,則建立相應的檔案)中import osimport time#指定盤符DESK = 'E:\\'#資訊儲存檔案的路徑########## 這裡請先建立好此檔案,我在做檔案操作的過程中########## 使用os.mknod('E:\\info.txt'),系統不會建立檔案的SAVE_FILE = 'E:\\info.txt'#檔案尾碼類型FILE_EXT = ['bmp','jpeg','gif','psd','png','jpg']#定義全域變數my_dirs = []my_files = []#檔案個數FILES_NUMBER = 0#符合要求的檔案個數RIGHT_FILES_NUMBER = 0#不符合要求的檔案個數NOT_RIGHT_FILES_NUMBER = 0#檔案夾個數DIR_NUMBER = 0#擷取指定檔案夾下面的所有檔案及檔案夾#如果指定的檔案夾不存在,則返回相應的提示資訊def listdir(dir_path): if os.path.exists(dir_path): return os.listdir(dir_path) else: return '目錄'+ dir_path + '不存在'#搜尋檔案主函數def search_files(path,name): if not os.path.isdir(path) and not os.path.isfile(path): return False path = os.path.join(path,name) if os.path.isfile(path): #是檔案 global FILES_NUMBER FILES_NUMBER = FILES_NUMBER + 1 lists = path.split('.') #print('============================================',lists) file_ext = lists[-1] #副檔名 if file_ext in FILE_EXT: global RIGHT_FILES_NUMBER RIGHT_FILES_NUMBER = RIGHT_FILES_NUMBER + 1 global my_files now = str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) size = str(get_file_size(path)) my_files.append(now+' '+path+' '+size+'\n') print('檔案:',path) else: global NOT_RIGHT_FILES_NUMBER NOT_RIGHT_FILES_NUMBER = NOT_RIGHT_FILES_NUMBER + 1 elif os.path.isdir(path): #是檔案夾 global DIR_NUMBER DIR_NUMBER = DIR_NUMBER + 1 for name in listdir(path): #print(os.path.join(path,name)) search_files(path,name)#擷取檔案大小def get_file_size(path): if os.path.exists(path): return os.path.getsize(path)#寫入資訊def write_info(content): if os.path.exists(path): with open(SAVE_FILE,'w+') as fp: fp.write(content) fp.flush() fp.close() else: print('檔案:{}不存在!'.format(SAVE_FILE))#讀取所有資訊def read_info(): if os.path.exists(path): with open(SAVE_FILE,'r+') as fp: for line in fp: print(line) else: print('檔案:{}不存在!'.format(SAVE_FILE))if __name__ == '__main__': for d in listdir(DESK): my_dirs.append(os.path.join(DESK,d)) print(my_dirs) #這裡是做測試用的,由於掃描整個盤符涉及到的檔案和檔案夾很多,可能要花一定的時間 #所以這裡可以使用一個檔案夾作為測試 my_dir = ['E:\\test'] for path in my_dir: search_files(path,'') print('#' * 50) print(my_files) print('#' * 50) print('開始寫入資訊...') content = ''.join(my_files) write_info(content) print('#' * 50) print('開始讀取資訊...') read_info() print('#' * 50) print('搜尋資料夾總數:{0},檔案總數:{1}'.format(DIR_NUMBER,FILES_NUMBER)) print('符合要求的檔案總數:{0},不符合要求的檔案總數:{1}'.format(RIGHT_FILES_NUMBER,NOT_RIGHT_FILES_NUMBER))
運行控制台情況;
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>> ['E:\\bb', 'E:\\devlopment', 'E:\\game', 'E:\\hongten_download', 'E:\\info.txt', 'E:\\log4j', 'E:\\mydir', 'E:\\oracle', 'E:\\oracle10.2_win32', 'E:\\RECYCLER', 'E:\\svn_checkout', 'E:\\System Volume Information', 'E:\\test', 'E:\\The KMPlayer', 'E:\\windows', 'E:\\work']檔案: E:\test\20130627_140132Hongten.jpg檔案: E:\test\20130627_182913(1)Hongten.jpg檔案: E:\test\20130627_183008(1)Hongten.jpg檔案: E:\test\20130627_183054Hongten.jpg檔案: E:\test\20130627_183059Hongten.jpg檔案: E:\test\20130627_183101Hongten.jpg檔案: E:\test\20130627_183116Hongten.jpg檔案: E:\test\20130627_183326Hongten.jpg檔案: E:\test\20130627_183714Hongten.jpg檔案: E:\test\20130627_183749Hongten.jpg檔案: E:\test\20130627_183925Hongten.jpg檔案: E:\test\20130627_203658Hongten.jpg檔案: E:\test\20130627_203802Hongten.jpg檔案: E:\test\20130627_205112(1)Hongten.jpg檔案: E:\test\20130627_205131Hongten.jpg檔案: E:\test\20130627_205159Hongten.jpg檔案: E:\test\20130627_205219(1)Hongten.jpg檔案: E:\test\20130627_205257Hongten.jpg檔案: E:\test\20130627_205315Hongten.jpg檔案: E:\test\20130627_205408(1)Hongten.jpg檔案: E:\test\20130627_205425Hongten.jpg檔案: E:\test\20130627_205627Hongten.jpg檔案: E:\test\20130627_205629Hongten.jpg檔案: E:\test\hongten\6.27\20130627_140132Hongten.jpg檔案: E:\test\hongten\6.27\20130627_182913(1)Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183008(1)Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183054Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183059Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183101Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183116Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183326Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183714Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183749Hongten.jpg檔案: E:\test\hongten\6.27\20130627_183925Hongten.jpg檔案: E:\test\hongten\6.27\20130627_203658Hongten.jpg檔案: E:\test\hongten\6.27\20130627_203802Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205112(1)Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205131Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205159Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205219(1)Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205257Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205315Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205408(1)Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205425Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205627Hongten.jpg檔案: E:\test\hongten\6.27\20130627_205629Hongten.jpg##################################################['2013-07-28 17:14:49 E:\\test\\20130627_140132Hongten.jpg 0\n', '2013-07-28 17:14:49 E:\\test\\20130627_182913(1)Hongten.jpg 2380747\n', '2013-07-28 17:14:49 E:\\test\\20130627_183008(1)Hongten.jpg 2315326\n', '2013-07-28 17:14:49 E:\\test\\20130627_183054Hongten.jpg 2672977\n', '2013-07-28 17:14:49 E:\\test\\20130627_183059Hongten.jpg 2006608\n', '2013-07-28 17:14:49 E:\\test\\20130627_183101Hongten.jpg 2076974\n', '2013-07-28 17:14:49 E:\\test\\20130627_183116Hongten.jpg 2687018\n', '2013-07-28 17:14:49 E:\\test\\20130627_183326Hongten.jpg 1993448\n', '2013-07-28 17:14:49 E:\\test\\20130627_183714Hongten.jpg 2497973\n', '2013-07-28 17:14:49 E:\\test\\20130627_183749Hongten.jpg 2066327\n', '2013-07-28 17:14:49 E:\\test\\20130627_183925Hongten.jpg 2037776\n', '2013-07-28 17:14:49 E:\\test\\20130627_203658Hongten.jpg 3033996\n', '2013-07-28 17:14:49 E:\\test\\20130627_203802Hongten.jpg 2837396\n', '2013-07-28 17:14:49 E:\\test\\20130627_205112(1)Hongten.jpg 2987659\n', '2013-07-28 17:14:49 E:\\test\\20130627_205131Hongten.jpg 2745724\n', '2013-07-28 17:14:49 E:\\test\\20130627_205159Hongten.jpg 2824810\n', '2013-07-28 17:14:49 E:\\test\\20130627_205219(1)Hongten.jpg 2864744\n', '2013-07-28 17:14:49 E:\\test\\20130627_205257Hongten.jpg 3092656\n', '2013-07-28 17:14:49 E:\\test\\20130627_205315Hongten.jpg 2832393\n', '2013-07-28 17:14:49 E:\\test\\20130627_205408(1)Hongten.jpg 2796261\n', '2013-07-28 17:14:49 E:\\test\\20130627_205425Hongten.jpg 3295286\n', '2013-07-28 17:14:49 E:\\test\\20130627_205627Hongten.jpg 2819717\n', '2013-07-28 17:14:49 E:\\test\\20130627_205629Hongten.jpg 2813522\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_140132Hongten.jpg 2571032\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_182913(1)Hongten.jpg 2380747\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183008(1)Hongten.jpg 2315326\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183054Hongten.jpg 2672977\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183059Hongten.jpg 2006608\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183101Hongten.jpg 2076974\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183116Hongten.jpg 2687018\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183326Hongten.jpg 1993448\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183714Hongten.jpg 2497973\n', '2013-07-28 17:14:49 E:\\test\\hongten\\6.27\\20130627_183749Hongten.jpg 2066327\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_183925Hongten.jpg 2037776\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_203658Hongten.jpg 3033996\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_203802Hongten.jpg 2837396\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205112(1)Hongten.jpg 2987659\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205131Hongten.jpg 2745724\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205159Hongten.jpg 2824810\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205219(1)Hongten.jpg 2864744\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205257Hongten.jpg 3092656\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205315Hongten.jpg 2832393\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205408(1)Hongten.jpg 2796261\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205425Hongten.jpg 3295286\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205627Hongten.jpg 2819717\n', '2013-07-28 17:14:50 E:\\test\\hongten\\6.27\\20130627_205629Hongten.jpg 2813522\n']##################################################開始寫入資訊...##################################################開始讀取資訊...2013-07-28 17:14:49 E:\test\20130627_140132Hongten.jpg 02013-07-28 17:14:49 E:\test\20130627_182913(1)Hongten.jpg 23807472013-07-28 17:14:49 E:\test\20130627_183008(1)Hongten.jpg 23153262013-07-28 17:14:49 E:\test\20130627_183054Hongten.jpg 26729772013-07-28 17:14:49 E:\test\20130627_183059Hongten.jpg 20066082013-07-28 17:14:49 E:\test\20130627_183101Hongten.jpg 20769742013-07-28 17:14:49 E:\test\20130627_183116Hongten.jpg 26870182013-07-28 17:14:49 E:\test\20130627_183326Hongten.jpg 19934482013-07-28 17:14:49 E:\test\20130627_183714Hongten.jpg 24979732013-07-28 17:14:49 E:\test\20130627_183749Hongten.jpg 20663272013-07-28 17:14:49 E:\test\20130627_183925Hongten.jpg 20377762013-07-28 17:14:49 E:\test\20130627_203658Hongten.jpg 30339962013-07-28 17:14:49 E:\test\20130627_203802Hongten.jpg 28373962013-07-28 17:14:49 E:\test\20130627_205112(1)Hongten.jpg 29876592013-07-28 17:14:49 E:\test\20130627_205131Hongten.jpg 27457242013-07-28 17:14:49 E:\test\20130627_205159Hongten.jpg 28248102013-07-28 17:14:49 E:\test\20130627_205219(1)Hongten.jpg 28647442013-07-28 17:14:49 E:\test\20130627_205257Hongten.jpg 30926562013-07-28 17:14:49 E:\test\20130627_205315Hongten.jpg 28323932013-07-28 17:14:49 E:\test\20130627_205408(1)Hongten.jpg 27962612013-07-28 17:14:49 E:\test\20130627_205425Hongten.jpg 32952862013-07-28 17:14:49 E:\test\20130627_205627Hongten.jpg 28197172013-07-28 17:14:49 E:\test\20130627_205629Hongten.jpg 28135222013-07-28 17:14:49 E:\test\hongten\6.27\20130627_140132Hongten.jpg 25710322013-07-28 17:14:49 E:\test\hongten\6.27\20130627_182913(1)Hongten.jpg 23807472013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183008(1)Hongten.jpg 23153262013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183054Hongten.jpg 26729772013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183059Hongten.jpg 20066082013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183101Hongten.jpg 20769742013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183116Hongten.jpg 26870182013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183326Hongten.jpg 19934482013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183714Hongten.jpg 24979732013-07-28 17:14:49 E:\test\hongten\6.27\20130627_183749Hongten.jpg 20663272013-07-28 17:14:50 E:\test\hongten\6.27\20130627_183925Hongten.jpg 20377762013-07-28 17:14:50 E:\test\hongten\6.27\20130627_203658Hongten.jpg 30339962013-07-28 17:14:50 E:\test\hongten\6.27\20130627_203802Hongten.jpg 28373962013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205112(1)Hongten.jpg 29876592013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205131Hongten.jpg 27457242013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205159Hongten.jpg 28248102013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205219(1)Hongten.jpg 28647442013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205257Hongten.jpg 30926562013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205315Hongten.jpg 28323932013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205408(1)Hongten.jpg 27962612013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205425Hongten.jpg 32952862013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205627Hongten.jpg 28197172013-07-28 17:14:50 E:\test\hongten\6.27\20130627_205629Hongten.jpg 2813522##################################################搜尋資料夾總數:4,檔案總數:50符合要求的檔案總數:46,不符合要求的檔案總數:4>>>
希望本文所述對大家Python程式設計有所協助。