查找重复的音乐

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

查找重复的音乐的相关文章

SQL 查找重复记录

CREATE TABLE product( ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL, Pid INT NOT NULL, Pname VARCHAR(50) NOT NULL, Punit CHAR(10) NOT NULL, Pspec VARCHAR(50), PbarCode VARCHAR(20),) INSERT INTO product(Pid,Pname,Punit,Pspec,PbarCode) VALUES(10000,'欧莱雅日间修

oracle查找重复记录

SELECT *FROM t_info aWHERE ((SELECT COUNT(*)          FROM t_info          WHERE Title = a.Title) > 1)ORDER BY Title DESC 一.查找重复记录 1.查找全部重复记录 Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2.过滤重复记录(只显示一条) Select *

查找重复记录 (GROUP BY goods_name HAVING count(goods_name) >= 2;)

//查找重复记录 SELECT * FROM 表 GROUP BY goods_name HAVING count(goods_name) >= 2;

sql 查找重复 时间戳转换

查找重复数据 select id, name, memo from A where id in (select id from A group by id having count(1) >= 2) UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′);

java查找重复类/jar包/普通文件

开发web应用时,有时更新了类却没有生效,其实是因为jboss/tomcat中其他发布包下有同名类(包括全路径都相同). 于是萌发了做个程序来检查指定目录是否存在重复类(通过asm从类文件中取类的全路径),扩展开来,还支持查找重复的文件(按文件md5进行比较),重复的jar文件. 主要代码如下: 简单测试代码: package cn.jerryhouse.util.dup_files.test; import java.io.File; import org.junit.Test; import

sort关于去除重复/查找非重复/查找重复/统计

去除重复sort file |uniq 查找非重复 sort file | uniq -u 查找重复 sort file | uniq -d 统计 sort file | uniq -c

oracle查找重复记录-转

SELECT *FROM t_info aWHERE ((SELECT COUNT(*)          FROM t_info          WHERE Title = a.Title) > 1)ORDER BY Title DESC 一.查找重复记录 1.查找全部重复记录 Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2.过滤重复记录(只显示一条) Select *

查找重复次数最多的子字符串

查找重复次数最多的子字符串,借鉴兆芯查找重复次数最多的字符,我们可以进行扩展,查找重复次数最多的子字符串. 基本思想是把重复次数最大记录下来,并记录起始位置: #include <iostream> #include <stdio.h> using namespace std; int mystrlen(char *str) { int sum(0); char *temp=str; while(*temp!='\0') { ++temp; ++sum; } return sum;

MySQL索引的维护与优化——查找重复及冗余索引

方法一:通过MySQL的information_schema数据库 查找重复与冗余索引 SELECT a.table_schema AS '数据库', a.table_name AS '表名', a.index_name AS '索引1', b.index_name AS '索引2', a.column_name AS '重复列名' FROM information_schema.statistics a JOIN statistics b ON a.table_schema = b.table