資源簡介
將雜亂的文件按照文件名分類移動到對應(yīng)類別的文件夾中
代碼片段和文件信息
#!?/usr/bin/python
#?-*-?coding:?UTF-8?-*-
import?os;
import?shutil;
import?difflib;
#fileDir=os.getcwd();
fileDir=“E:\lib“
#定義搜索文件函數(shù)
def?sourceAllFile(file_listfiledir_list):
????file_dict?=?{}
????for?parentdirnamesfilenames?in?os.walk(fileDir):
????????for?filename?in?filenames:
????????????filedir_list.append(os.path.join(parentfilename))
????????????file_list.append(filename)
????????????file_dict[filename]=os.path.join(parentfilename)
????#返回的字典按照key排序,正序
????return?sorted(file_dict.items()key=lambda?f:f[0]reverse=False)
#查看文件是否相同
def?checkSimFile(dict):
????pin=0
????dict_len=len(dict)
????dirs=set()
????result_set=set()
????result_obj={}
????result_bak=‘‘
????church_index=[]
????while?pin ????????ori_str=dict[pin][0]
????????count=pin+1;
????????while?count ????????????new_str=dict[count][0]
????????????#比較第一個字符串和下一個字符串,如果第一個字符都相等
????????????#那么比較第二個字符,直到不相等,然后把公共的字符存起來
????????????#然后和下一個字符串相比,如果不同就直接退出循環(huán),然后設(shè)置pin的大小
????????????fileDirindex=compareFileName(ori_strnew_str);
????????????#index=difflib.SequenceMatcher(Noneori_str[0:6]new_str[0:6]).ratio();
????????????print?ori_strnew_strindex;
????????????#print?pincountori_strnew_strfileDirindex(index==0?or(len(church_index)>0?and?church_index[len(church_index)-1]!=index))
????????????if?index<0.8?or?(len(church_index)>0?and?church_index[len(church_index)-1]>0?and?church_index[len(church_index)-1]!=index):????
????????????????pin=count
????????????????church_index.append(index)
????????????????break
????????????else:
????????????????church_index.append(index)
????????????????dirs.add(fileDir)
????????????????result_bak=fileDir
????????????????if?fileDir?in?dirs:
????????????????????result_set.add(dict[count][1])
????????????????????result_set.add(dict[pin][1])
????????????????dirs.add(fileDir)
????????????????count=count+1
????????else:
????????????#print(“不等為“+str(pin)+“-“+str(count))
????????????if?len(result_set)>0:
????????????????????result_obj[result_bak]=tuple(result_set)
????????????????????result_set=set()
????????????break
????????
????????if?len(result_set)>0:
??????????
評論
共有 條評論