香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python批量修改文件名的实现代码


时间:2021-11-09 10:23 作者:admin


#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):   """   获取正确的输入结果   """  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):   """   测试   返回过滤结果   """  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)
(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)