python實現搜尋本地檔案資訊寫入檔案的方法

來源:互聯網
上載者:User
本文執行個體講述了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程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.