查找重复的音乐

因为音乐U盘长期使用,保留住一些喜欢的歌,后续会下载更新一些,慢慢就对歌曲进行了分类放入不同的文件夹,这样就会很容易弄一些重复的歌曲,下面写的一段python小程序找出重复的歌曲.

  

 1 # coding=utf-8
 2 import sys
 3 import os
 4 
 5 # 获取所有的歌曲
 6 def find_audios(audio_root, audio_exts, audio_list):
 7     # 如果即不是目录也不是文件函数返回
 8     if not os.path.isdir(audio_root) and not os.path.isfile(audio_root):
 9         return False
10     if os.path.isfile(audio_root):
11         # 获得文件目录名与文件名
12         dir_and_file = os.path.split(audio_root)
13         # 获得文件的扩展名
14         file_ext = dir_and_file[-1].split('.')[-1]
15         if file_ext in audio_exts:
16             audio_list.append(audio_root)
17     elif os.path.isdir(audio_root):
18         for audio_ch in os.listdir(audio_root):
19             audio_ch_root = os.path.join(audio_root, audio_ch)
20             audio_ch_root.replace('\', '/')
21             find_audios(audio_ch_root, audio_exts, audio_list)
22 
23 # 检测重复的歌曲
24 def check_audio_repeat(audio_list, repeat_list):
25     while len(audio_list) > 0:
26         audio = audio_list[0]
27         audio_list.remove(audio)
28         # 获取文件目录名与文件名
29         dir_and_file = os.path.split(audio)
30         # 获得文件名
31         audio_name = dir_and_file[-1].split('.')[0]
32         for audio_in in audio_list:
33             _dir_and_file = os.path.split(audio_in)
34             _audio_name = _dir_and_file[-1].split('.')[0]
35             if audio_name == _audio_name:
36                 repeat_list.append(audio)
37                 repeat_list.append(audio_in)
38 
39 if __name__ == '__main__':
40     # 判断参数是否传入正确
41     if len(sys.argv) != 2:
42         print('argv error:
python ' + sys.argv[0] + ' {audio root}')
43         sys.exit(0)
44     else:
45         audio_root = sys.argv[1]
46         audio_exts = ['mp3', 'flac', 'ape']
47         audio_list = []
48         find_audios(audio_root, audio_exts, audio_list)
49         audio_repeat = []
50         check_audio_repeat(audio_list, audio_repeat)
51         # 打印结果
52         for audio_r in audio_repeat:
53             print(audio_r)

得到的结果信息:

 1 E:DevelopmentLive>python find_duplicate_audio.py I:Music
 2 I:Music时间记忆降央卓玛 - 西海情歌.ape
 3 I:MusicKougouPay100降央卓玛 - 西海情歌.flac
 4 I:Music时间记忆孙露 - 爱情的秋天.flac
 5 I:MusicUpdate20170913孙露 - 爱情的秋天.flac
 6 I:MusicKougou酷音乐流行风向标后弦 - 下完这场雨.flac
 7 I:MusicKougou酷音乐排行榜后弦 - 下完这场雨.flac
 8 I:MusicKougou酷音乐流行风向标任素汐 - 我要你.flac
 9 I:MusicKougou酷音乐排行榜任素汐 - 我要你.flac
10 I:MusicKougou酷音乐流行风向标六哲 - 累了走了散了.flac
11 I:MusicKougou酷音乐排行榜六哲 - 累了走了散了.flac
12 I:MusicKougou酷音乐流行风向标陈粒 - 当我在这里.flac
13 I:MusicKougou酷音乐排行榜陈粒 - 当我在这里.flac
14 I:MusicKougou酷音乐流行风向标李玉刚 - 刚好遇见你.flac
15 I:MusicKougou酷音乐排行榜李玉刚 - 刚好遇见你.flac
16 I:MusicKougou酷音乐流行风向标唐古 - 心与心的距离.flac
17 I:MusicKougou酷音乐排行榜唐古 - 心与心的距离.flac
18 I:MusicKougou酷音乐流行风向标G.E.M.邓紫棋 - 死了都要 · 爱.flac
19 I:MusicKougouTop100G.E.M.邓紫棋 - 喜欢你.flac
20 I:MusicKougou酷音乐流行风向标唐古 - 别让眼泪轻易的落下.flac
21 I:MusicKougou酷音乐排行榜唐古 - 别让眼泪轻易的落下.flac
22 I:MusicKougou酷音乐流行风向标庄心妍 - 有种离开叫舍不得.flac
23 I:MusicKougou酷音乐排行榜庄心妍 - 有种离开叫舍不得.flac
24 I:MusicKougou酷音乐流行风向标孙露 - 怎样遇见你.flac
25 I:MusicKougou酷音乐排行榜孙露 - 怎样遇见你.flac
26 I:MusicKougou酷音乐流行风向标陈瑞 - 没人心疼的玫瑰.flac
27 I:MusicKougou酷音乐排行榜陈瑞 - 没人心疼的玫瑰.flac
28 I:MusicKougou酷音乐流行风向标唐古 - 我的城市没有家.flac
29 I:MusicKougou酷音乐排行榜唐古 - 我的城市没有家.flac
30 I:MusicKougou酷音乐流行风向标王蓉 - 人鱼校花.flac
31 I:MusicKougou酷音乐排行榜王蓉 - 人鱼校花.flac
32 I:MusicKougou酷音乐流行风向标凤凰传奇 - 远方的远方还是远方.flac
33 I:MusicKougou酷音乐排行榜凤凰传奇 - 远方的远方还是远方.flac
34 I:MusicKougou酷音乐排行榜张靓颖 - 一定要幸福.flac
35 I:MusicKougouPay100张靓颖 - 一定要幸福.flac
36 I:MusicKougou网络红歌榜庄心妍 - 走着走着就散了.flac
37 I:MusicKougouTop100庄心妍 - 走着走着就散了.flac
38 I:MusicKougou网络红歌榜庄心妍 - 以后的以后.flac
39 I:MusicKougouTop100庄心妍 - 以后的以后.flac
40 I:MusicKougou网络红歌榜陈雅森 - 我的快乐就是想你.flac
41 I:MusicKougouTop100陈雅森 - 我的快乐就是想你.flac
42 I:MusicUpdate20170913梦然 - 没有你陪伴真的好孤单.mp3
43 I:MusicUpdate20170913梦然 - 没有你陪伴真的好孤单.flac
原文地址:https://www.cnblogs.com/linxmouse/p/7517855.html