国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python批量修改文件名的實現(xiàn)代碼

2020-02-23 05:45:29
字體:
供稿:網(wǎng)友
#coding:utf-8 #批量修改文件名 import os import re import datetime  re_st = r'(/d+)/+/s?/((/d+)/)' #用于匹配舊的文件名,需含分組 re_match_old_file_name = re.compile(re_st)  #要修改的目錄 WORKING_PATH = r'F:/Gallery'  #---------------------------------------------------------------------- def rename_fomat(name):   """   文件重命名格式組織模塊(一般修改這里就可以了)   NOTE:返回類型必須是unicode   """  if name:     re_rn = re_match_old_file_name.findall(name)     if re_rn and re_rn != []:       re_rn = re_rn[0]       num = int(re_rn)       new_nm = u'NO.%04d' % ( num)       return new_nm  #---------------------------------------------------------------------- def logs(error):   """   錯誤記錄   """  log = ''   LOG_FILE = open(r'./log.txt', 'a')   live_info =""" ========== Time : %s title : %s Path : %s ========== """ % (     datetime.datetime.now(),     str(error['title']),     str(error['index']),   )   log += live_info   errors = error['error_paths']   for item in errors:     item = '%s/n' % item     log += item   log = log.encode('utf-8')   try:     LOG_FILE.write(log)   except IOError:     print u'寫入日志失敗'  finally:     LOG_FILE.close()  #---------------------------------------------------------------------- def rename(old, new):   """   文件重命名模塊   return:     0:rename success     1:the new path is exists     -1:rename failed   """  if not os.path.exists(new):     try:       os.renames(old, new)       return 0    except IOError:       print 'path error:', new       return -1  else:     return 1 #---------------------------------------------------------------------- def get_dirs(path):   """   獲取目錄列表   """  if os.path.exists(path):     return os.listdir(path)   else:     return -1  #---------------------------------------------------------------------- def get_input_result(word, choice):   """   獲取正確的輸入結(jié)果   """  correct_result = set(choice)   word = '===%s?/n[in]:' % (word)   while True:     in_choice = raw_input(word)     if in_choice in correct_result: return in_choice      #---------------------------------------------------------------------- def batch_rename(index, dirs = []):   """   批量修改文件   """  index = unicode(index)   errors = []   if dirs == []:     dirs = get_dirs(path = index)   if dirs and dirs != []:     for item in dirs:       item = unicode(item)       new_name = rename_fomat(item)       if new_name :         old_pt = u'%s//%s'% (index, item)         new_pt = u'%s//%s'% (index, new_name)         res_rn = rename(old_pt, new_pt)         if res_rn != 0:           errors.append(item)       else:         errors.append(item)     if errors and errors != []:       print 'Rename Failed:'      logs({         'index': index,         'title': 'Rename Failed' ,         'error_paths': errors,       })       for i, item in enumerate(errors):         print item, '|',         if i % 5 == 4:           print ''       print ''   else:     return -1 #---------------------------------------------------------------------- def batch_rename_test(index):   """   測試   返回過濾結(jié)果   """  index = unicode(index)   errors = []   correct = []   dirs = get_dirs(path = index)   if dirs and dirs != []:     for x, item in enumerate(dirs):       item = unicode(item)       new_name = rename_fomat(item)       if new_name :         correct.append(item)         old_pt = u'%s//%s'% (index, item)         new_pt = u'%s//%s'% (index, new_name)         print '[%d]O: %s' % ( x + 1, old_pt)         print '[%d]N: %s' % ( x + 1, new_pt)       else:         errors.append(item)     if errors and errors != []:       print 'Not Match:'      logs({         'index': index,         'title': 'Not Match',         'error_paths': errors,       })       for i, item in enumerate(errors):         print item, '|',         if i % 5 == 4:           print ''       print ''   return correct    #---------------------------------------------------------------------- def manage(index):   """   程序組織塊   """  file_filter = batch_rename_test(index)   do_choice = get_input_result(     word = 'Do with this(y / n)',     choice = ['y', 'n']   )   if do_choice == 'y':     batch_rename(index, dirs= file_filter)   print 'Finished !'  if __name__ == '__main__':   path = WORKING_PATH   manage(index = path)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桃园市| 房山区| 江孜县| 虎林市| 西平县| 萍乡市| 洪泽县| 屏南县| 陵水| 奉化市| 前郭尔| 柳州市| 邢台县| 丰顺县| 尖扎县| 黄龙县| 紫阳县| 水城县| 米易县| 望谟县| 定南县| 饶河县| 合阳县| 确山县| 淮南市| 紫云| 克山县| 崇义县| 垫江县| 北宁市| 慈利县| 永德县| 陇南市| 特克斯县| 青州市| 辽宁省| 河津市| 平塘县| 安康市| 渭源县| 泉州市|