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


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

    # -*- coding: utf-8 -*-
    
    import fnmatch
    import os
    import codecs
    import re
    import sys
    
    def 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=='xc4xd0'):
                    SingerName='1'
                    new_filename=re.sub('((..?)).dat','(1).dat',filename)
                    print new_filename
                    os.rename(filename,new_filename)
                    #print SingerName
                elif(SingerName=='xc5xae'):
                    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()
    

      

    也许青春就是这样,有希望,却依然迷茫得不知所措。。。
  • 相关阅读:
    第二章 java内存区域与内存溢出异常
    TCP实现可靠传输
    Tomcat的类加载架构
    浅析Synchronized
    设计数据库
    http和https
    IOC容器的依赖注入
    IOC容器初始化
    深入理解Java内存模型
    单例应该这么写
  • 原文地址:https://www.cnblogs.com/dannyoung/p/4518250.html
Copyright © 2020-2023  润新知