Python_检查文件名是否规范(修改版)

来源:互联网 发布:seo超级伪静态 编辑:程序博客网 时间:2024/06/04 20:42
# coding=utf-8import osimport os.pathimport reimport arrayimport cmdimport pdbimport pickleimport tempfileimport subprocess# rootPath = os.getcwd()# print rootPathrootPath = raw_input('The Check Path:')nonCheckDir = raw_input('The Non Check DirName(DirName1;DirName2):')nonCheckDirList = []if nonCheckDir:    nonCheckDirList = nonCheckDir.split(';')# 路径字典pathDic = {}# 新建文件夹  os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在if not os.path.isdir(rootPath+'/logout'):    os.makedirs(rootPath + '/logout')logPath=os.path.join(rootPath,'logout')nonstandard_filename_path = open(logPath+'/nonstandard_filename_path.txt','w')# 标准的符号库num = "0123456789"word = "abcdefghijklmnopqrstuvwxyz"sym = "_."# 符号库symBank = []for key in word:    symBank.append(key)for key in num:    symBank.append(key)for key in sym:    symBank.append(key)def GetAllDir(getPath):    # print (getPath)    paths = os.listdir(getPath)    for dirName in paths:        dirPath = os.path.join(getPath,dirName)        if os.path.isdir(dirPath) and dirName != '.svn':            # print dirPath            relPath = dirPath[len(rootPath)+1:len(dirPath)]            # print relPath            if not nonCheckDirList.__contains__(relPath):                pathDic[relPath] = dirPath                GetAllDir(dirPath)def GetAllFile(getPath):    files = os.listdir(getPath)    for fileName in files:        filePath = os.path.join(getPath,fileName)        if fileName.endswith('.png') or fileName.endswith('.PNG'):            fileName = fileName[0:fileName.index('.')]            if not set(fileName).issubset(symBank):                # print fileName                # print filePath                nonstandard_filename_path.write(filePath + '\n')            else:                # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)                sign = re.search(r'_[\d]*[x|X][\d]*\d',fileName,re.M|re.I)                if sign:                    nonstandard_filename_path.write(filePath + '\n')if __name__ == '__main__':    print ('main')    pathDic['curPath'] = rootPath    GetAllDir(rootPath)    for key in pathDic:        # print key        GetAllFile(pathDic[key])    # line = "image_500100000"    # obj = re.search(r'_[\d]*[x|X][\d]*\d',line,re.M|re.I)    # line = line.replace(obj.group(),'=')    # if obj:    #     print obj.group()    # else:    #     print ("==-")    # line1 = "image_500x100"    # obj1 = re.search(r'[a-z0-9_]*',line1,re.M)    # print obj1.group()

新建bat后缀文件

find_nonstandard_name.exe -c@pause
修改后脚本

# coding=utf-8import osimport os.pathimport reimport arrayimport cmdimport pdbimport pickleimport tempfileimport subprocessimport sysimport getoptrootPath = ""nonCheckDirList = sys.argv[1:]opts, args = getopt.getopt(sys.argv[1:],"cs:",["cPath="])for opt,arg in opts:    if opt == '-c':        rootPath = os.getcwd()    elif opt in ("-s","--cPath"):        rootPath = arg# 路径字典pathDic = {}# 新建文件夹  os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在if not os.path.isdir(rootPath+'/logout'):    os.makedirs(rootPath + '/logout')logPath=os.path.join(rootPath,'logout')nonstandard_filename_path = open(logPath+'/nonstandard_filename_path.txt','w')def GetAllDir(getPath):    # print (getPath)    paths = os.listdir(getPath)    for dirName in paths:        dirPath = os.path.join(getPath,dirName)        if os.path.isdir(dirPath) and dirName != '.svn':            # print dirPath            relPath = dirPath[len(rootPath)+1:len(dirPath)]            # print relPath            if not nonCheckDirList.__contains__(relPath):                pathDic[relPath] = dirPath                GetAllDir(dirPath)def GetAllFile(getPath):    files = os.listdir(getPath)    for fileName in files:        filePath = os.path.join(getPath,fileName)        if fileName.endswith('.png') or fileName.endswith('.PNG'):            fileName = fileName[0:fileName.index('.')]            firstSign = re.search(r'^[a-z0-9_]*$',line1,re.M)            if firstSign:                # print filePath                # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)                sign = re.search(r'_[\d]*[x|X][\d]*\d', fileName, re.M | re.I)                if sign:                    print fileName                    nonstandard_filename_path.write(filePath + '\n')            else:                print fileName                nonstandard_filename_path.write(filePath + '\n')if __name__ == '__main__':    print ('main')    pathDic['curPath'] = rootPath    GetAllDir(rootPath)    for key in pathDic:        # print key        GetAllFile(pathDic[key])

添加检查文件重名功能


# coding=utf-8import osimport os.pathimport reimport arrayimport cmdimport pdbimport pickleimport tempfileimport subprocessimport sysimport getoptnonCheckDirList = sys.argv[1:]rootPath = os.getcwd()checkRepetPathList = []if nonCheckDirList:    rootPath = os.path.realpath(os.path.join(os.getcwd(),nonCheckDirList[0]))    if nonCheckDirList[0] == "./":        rootPath = os.getcwd()    for _path in nonCheckDirList:        # -- 检查重命名路径        _cmdRepet = _path[0:2]        if _cmdRepet == "/r":            repetPath = _path[len(_cmdRepet):len(_path)]            print repetPath            checkRepetPathList.append(repetPath)print rootPath + '\n'# 路径字典pathDic = {}# 重名路径字典repetDic = {}# 新建文件夹  os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在# if not os.path.isdir(rootPath+'/logout'):#     os.makedirs(rootPath + '/logout')# logPath=os.path.join(rootPath,'logout')logPath = os.getcwd()nonstandard_filename_path = open(logPath+"\\"+u"不规范命名文件".encode("GBK") + ".txt",'w')def GetAllDir(getPath):    # print (getPath)    paths = os.listdir(getPath)    for dirName in paths:        dirPath = os.path.join(getPath,dirName)        if os.path.isdir(dirPath) and dirName != '.svn':            # print dirPath            relPath = dirPath[len(rootPath)+1:len(dirPath)]            # print relPath            if not nonCheckDirList.__contains__(relPath):                pathDic[relPath] = dirPath                GetAllDir(dirPath)def GetAllFile(getPath):    files = os.listdir(getPath)    for fileName in files:        filePath = os.path.join(getPath,fileName)        if fileName.endswith('.png') or fileName.endswith('.PNG'):            fileName = fileName[0:fileName.index('.')]            firstSign = re.search(r'^[a-z0-9_]*$',fileName,re.M)            if firstSign:                # print filePath                # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)                sign = re.search(r'_[\d]*[x|X][\d]*\d', fileName, re.M | re.I)                if sign:                    print fileName                    nonstandard_filename_path.write(filePath + '\n')            else:                print fileName                nonstandard_filename_path.write(filePath + '\n')def CheckRepetFile(getPath):    if checkRepetPathList:        paths = os.listdir(getPath)        for dirName in paths:            dirPath = os.path.join(getPath, dirName)            if os.path.isdir(dirPath) and dirName != '.svn':                # print dirPath                relPath = dirPath[len(rootPath) + 1:len(dirPath)]                # print relPath                repetDic[relPath] = dirPath                CheckRepetFile(dirPath)imageList = []repetImagePath = []def GetCheckRepetFile(getPath):    files = os.listdir(getPath)    for fileName in files:        filePath = os.path.join(getPath, fileName)        if fileName.endswith('.png') or fileName.endswith('.PNG'):            # print filePath            imageList.append(fileName)            repetImagePath.append(filePath)repet_filename_path = open(logPath+"\\"+u"重复命名文件".encode("GBK") + ".txt",'w')if __name__ == '__main__':    # print ('main')    pathDic['curPath'] = rootPath    GetAllDir(rootPath)    for key in pathDic:        # print key        GetAllFile(pathDic[key])    print '\n' + "The Logout Path:" + logPath+"\\"+u"不规范命名文件".encode("GBK") + ".txt"    repetDic['curPath'] = rootPath    # 检查重复文件路径列表    for __path in checkRepetPathList:        _repetPath = os.path.join(rootPath, __path)        CheckRepetFile(_repetPath)    # 遍历路径获得所有图片    for key in repetDic:        GetCheckRepetFile(repetDic[key])    _newImageList = []    for image in imageList:        repetCount = imageList.count(image)        if repetCount > 1 :            if not image in _newImageList:                _newImageList.append(image)    for repetImage in _newImageList:        print repetImage        repet_filename_path.write(repetImage + '\n')        for repetPathPath in repetImagePath:            fileNameName = os.path.basename(repetPathPath)            if repetImage == fileNameName:                repet_filename_path.write(repetPathPath + '\n')                # print repetPathPath    print '\n' + "The Logout Path:" + logPath+"\\"+u"重复命名文件".encode("GBK") + ".txt"


原创粉丝点击