Posted in Python onJuly 26, 2009
#Filename:brn.py #Description: batch replace certain words in file names #Use to bat rename the file in a dir(modify the suffix from a to b) for Windows Vista OS import sys import os import fnmatch import re #parse params p=input("Please input work directory(current path for enter):") if p=='\r': p='.' p=p.rstrip('\r') print (p) while not os.path.exists(p): print (p+' is not existed.Please input the work directory:') p=input("Please input work directory(current path for enter):") s=input("Please enter the words which need be modified(must):") while s=='\r': s=input("Please enter the words which need be replaced(must):") s=s.rstrip('\r') d=input("Please enter the words which want to change to(must):") while d=='\r': d=input("Please enter the words which want to change to(must):") d=d.rstrip('\r') try: sure=input("Are you sure to rename the file named *"+s+"*"+" to *"+d+"*"+" in directory "+p+"? y/n:") sure=sure.rstrip('\r') if sure!='y': print ("Cancel") else: for root, dirs, files in os.walk(p, True): for file in files: print (os.path.join(root,file)) if os.path.isfile(os.path.join(root,file)):#Only file is file,not a dir ,do this if fnmatch.fnmatch(file, '*'+s+'*'): f=str(file).replace(s,d) if p=='.': command='move '+str(file)+" "+f else: command="move "+os.path.join(root,file)+" "+os.path.join(root,f) print (command) if os.system(command)==0:#do actual rename print ("Rename "+str(file)+" to "+f+" success") else: print ("Rename "+str(file)+" to "+f+" failed") #else: #print str(file)+" is a directory.omit" except IndexError: print (IndexError.message)
Python 文件重命名工具代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@