import glob import os musics=set() def retrieve_musics(path): files = glob.glob(path + '/**/*.mp3', recursive=True) for file in files: if file.find("@eaDir") == -1: tokens = file.split("/") fname = tokens[len(tokens)-1] if fname in musics: print ("{} in the set already".format(fname)) os.remove(file) else: musics.add(fname) print ("add {} into set".format(fname)) os.rename(file, "/nas/music/抖音类歌曲/{}".format(fname)) filename="__INVALID_MUSICS.txt" def loadInvalidMusicsFromFile(path): if not os.path.exists(path): open(path, 'a').close() return set(line.strip() for line in open(path)) def findInvalidMusics(path): invalidfilepath = os.path.join(path, filename) invalidmusics = loadInvalidMusicsFromFile(invalidfilepath) files = glob.glob(path + '/**/*.mp3', recursive=True) for file in files: if file.find("@eaDir") == -1: tokens = file.split("/") fname = tokens[len(tokens)-1] sz = os.path.getsize(file) if sz == 181521 and fname not in invalidmusics: with open(invalidfilepath, 'a') as the_file: the_file.write("{}\n".format(fname)) invalidmusics.add(fname) print("file found: {} is invalid and add it into the list".format(file)) os.remove(file) findInvalidMusics("/nas/music/kuwo")