python中re.findall()找到的结果替换,,正则表达式re模块中


正则表达式re模块中用findall查找到的是ascii码,所以当比对替换时也需要对应的ascii码才能匹配成功。以下程序是查找文件夹下文件名中含有男、女的文件,并将男替换成1,将女替换成2的程序

# -*- coding: utf-8 -*-import fnmatchimport osimport codecsimport reimport sysdef iterfindfiles(path, fnexp):    for root, dirs, files in os.walk(path):        for filename in fnmatch.filter(files, fnexp):            yield os.path.join(root, filename)def fiterFiles():        path=raw_input("input dir:")    filterfiletype=raw_input("input file filter type:")    #quanjiao_2_banjiao(path)    for filename in iterfindfiles(path,filterfiletype):        SingerList=re.findall(‘\((..?)\)\.dat‘,filename)        for SingerName in SingerList:            if(SingerName==‘\xc4\xd0‘):                SingerName=‘1‘                new_filename=re.sub(‘\((..?)\)\.dat‘,‘(1).dat‘,filename)                print new_filename                os.rename(filename,new_filename)                #print SingerName            elif(SingerName==‘\xc5\xae‘):                SingerName=‘2‘                new_filename=re.sub(‘\((..?)\)\.dat‘,‘(2).dat‘,filename)                print new_filename                os.rename(filename,new_filename)def main():    fiterFiles()if __name__ == "__main__":    main()

  

python中re.findall()找到的结果替换

相关内容

    暂无相关文章

评论关闭