1 #coding=utf-8
2
3 importos4 importsys5 importtime6
7 #private:
8 defcheckSuffix(strFileName, strCompareSuffix):9 strPreFileName = ''
10 strFileSuffix = ''
11 bIsCheckOk =False12 strArray = strFileName.split('.')13 if len(strArray) > 1:14 strPreFileName =strArray[0]15 strFileSuffix = strArray[1]16 #print(strFileSuffix)
17 #print(strCompareSuffix)
18 if strCompareSuffix == '*' or strFileSuffix ==strCompareSuffix:19 bIsCheckOk =True20 returnbIsCheckOk, strPreFileName21
22 defreadFileName(file_dir):23 for root, dirs, files inos.walk(file_dir):24 returnfiles,dirs, root25 return '', '', ''
26
27 deffindString(pathFile, findKey):28 #print("open pathFile:", pathFile)
29 fp = open(pathFile, "r", encoding='utf-8')30 strr =fp.read()31 if(strr.find(findKey) != -1):32 returnTrue33 returnFalse34
35 defstartFind(files, dirs, root, findKey, strSuffix):36 for fileName infiles:37 try:38 bIsCheckOk, strPreFileName =checkSuffix(fileName, strSuffix)39 if bIsCheckOk ==False:40 #print("fileName", fileName, " is not suffx :", strSuffix)
41 continue
42 if(findString(root + "\\" +fileName, findKey)):43 returnTrue, fileName44 exceptException as err:45 continue
46
47 for jj indirs:48 fi, di, ro = readFileName(root +jj)49 bIsFind, fileName =startFind(fi, di, ro, findKey, strSuffix)50 if(bIsFind ==True):51 returnbIsFind, fileName52 return False, ''
53
54 #public:
55 deffindUse(dirPath, findKey, strSuffix):56 files, dirs, root =readFileName(dirPath)57 returnstartFind(files, dirs, root, findKey, strSuffix)58
59 defgetDirsFiles(dirPath):60 dirfiles =[];61 for root, dirs, files inos.walk(dirPath):62 dirfiles +=files;63 returndirfiles64
65 defwriteResult(strFileName, strWriteSign, list):66 fp = open(strFileName, 'a+')67 fp.write(strWriteSign)68 #fp.writelines(list)
69 for str inlist:70 fp.write(str)71 fp.write('\n')72 fp.close()73
74 if __name__ == '__main__':75 """
76 findDir = u"E:\\mmo2018001\\artist\\open\\ui\\free\\"77 findAimDir = u"E:\\mmo2018001\\artist\\open\\effect\\"78 findsuffix = "prefab" # 哪些要搜索的文件的后缀79 findAimsuffix = "*" # 搜索那些后缀的文件80 """
81 bt = time.clock() #记录时间
82
83 findDir = sys.argv[1]84 findAimDir = sys.argv[2]85 findsuffix = sys.argv[3]86 findAimsuffix = sys.argv[4]87
88 thisPath =os.getcwd()89 print("this path is", thisPath)90 print(findDir)91 print(findAimDir)92 print(findsuffix)93 print(findAimsuffix)94
95 dirFiles =getDirsFiles(findAimDir)96 useFiles =[]97 notUseFiles =[]98 nLen =len(dirFiles)99 i =0100 for filesName indirFiles :101
102 bIsCheckOk, strPreFileName =checkSuffix(filesName, findsuffix)103 if bIsCheckOk ==True:104 isFind, fileName =findUse(findDir, strPreFileName, findAimsuffix)105 #print("filesName:\t", filesName, " \nIsFind:\t\t", isFind)
106 if(isFind):107 useFiles.append(filesName)108 else:109 notUseFiles.append(filesName)110 i += 1
111 p = round(i * 100 /nLen)112 duration = round(time.clock() - bt, 2)113 remaining = round(duration * 100 / (0.01 + p) - duration, 2)114 print("进度:{0}%,已耗时:{1}s,预计剩余时间:{2}s".format(p, duration, remaining), end="\r")115
116 writePath = thisPath + "\\Result.txt"
117 try:118 os.remove(writePath)119 exceptException as err:120 print(err)121 writeResult(writePath, "***************NotUseFiles:***************\n", notUseFiles)122 writeResult(writePath, "***************UseFiles:***************\n", useFiles)123 useTime = time.clock() -bt124 print("已完成 总耗时:", useTime)