<span style="color: rgb(51,153,102);">#!/usr/bin/env python</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);"># -*- coding: cp936 -*-</span><br style="color: rgb(51,153,102);"><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">"""</span><br style="color: rgb(51,153,102);"><p style=""><font color="#00ae00">用于批量转换特定目录下所有<font>MP3</font></font><font color="#00ae00">名称(包括改目录下所有子目录),新名称格式:“演唱者-歌曲名称”。</font></p>
<p style=""><font><font color="#00ae00">Mp3</font></font><font color="#00ae00">文件格式:</font></p>
<br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">at end of file - 128 bytes</span><br style="color: rgb(51,153,102);"><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">offset type len name</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">--------------------------------------------</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">0 char 3 "TAG"</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">3 char 30 title</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">33 char 30 artist</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">63 char 30 album</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">93 char 4 year</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">97 char 30 comments</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">127 byte 1 genre</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">--------------------------------------------</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);">"""</span><br><br>import sys<br>import os<br>import os.path<br><br>class MP3INFO:<br><p style=""><font><font color="#00ae00"> """</font></font><font color="#00ae00">读取<font>mp3</font></font><font color="#00ae00">文件中的演唱者和歌曲名称信息<font>"""</font></font></p>
def __init__(self, filename):<br> self.title = ''<br> self.artist = ''<br><br> f = file(filename,'rb')<br> f.seek(-128,2)<br> s=f.read(3)<br><br> if s == 'TAG': <span style="color: rgb(51,153,102);"># 判断是否是mp3文件</span><br> strlist = []<br> for i in (30,30):<br> s = f.read(i)<br> pos = s.find('/0')<br> if pos == 0:<br> s = ''<br> elif pos > 0:<br> s = s[0:pos]<br> strlist.append(s.strip())<br> self.title, self.artist = strlist<br><br> f.close()<br><br>def RenameMp3File(arg,dirname,names):<font color="#00ae00"><br><font>"""dirname: </font></font><font color="#00ae00">目录名;</font><font color="#00ae00"><font>names</font></font><font color="#00ae00">:目录下所有文件列表<font>"""</font></font> <br> for name in names:<br> filename = dirname + '/' + name<br> if os.path.isdir(filename) or name[-3:].lower() != 'mp3':<br> pass<span style="color: rgb(51,153,102);"> #</span><font color="#33cc66">该文件如果是目录或不是<font>.mp3</font></font><font color="#33cc66">文件,则什么也不作</font> <br> else:<br> mp3 = MP3INFO(filename)<font><font color="#33cc66"><br> #</font></font><font color="#33cc66">拼装新的文件名</font> <br> if mp3.title == '':<br> mp3filename = name<br> elif mp3.artist == '':<br> mp3filename = mp3.title + '.mp3'<br> else:<br> mp3filename = mp3.artist + ' - ' + mp3.title + '.mp3'<br><p style=""><font><font color="#33cc66"> #</font></font><font color="#33cc66">消除新文件名中的非法字符</font></p>
a = '//:*?"<>|'<br> t = [ x for x in mp3filename if x not in a]<br> mp3filename = ''<br> for x in t:<br> mp3filename += x<br><p style=""><font color="#33cc66"> <font>#</font>如果是在<font>winxp</font>下,无需判断字符编码<br><font> #linux</font></font><font color="#33cc66">下需要将原来的字符编码格式转换为<font>UTF8</font></font><font color="#33cc66">的格式,否则显示乱码</font><br></p>
codelist = ['gbk', 'hz', 'euc-tw', 'big5', 'gb18030', 'gb2312', /<br> 'utf-8', 'utf-16', 'big5-hkscs','iso-2022-cn',/<br> 'iso-2022-jp', 'iso-2022-kr', 'iso-8859-1']<br> #codelist = ['utf-8', 'gbk', 'big5', 'iso-8859-1']<br> for code in codelist:<br> try:<br> mp3filename = unicode(mp3filename, code)<br> mp3filename = mp3filename.encode('utf-8')<br><br><span style="color: rgb(51,153,102);"> # Judge that mp3.title not empty, because destination </span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);"> # filename will be equal to source filename when mp3.title</span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);"> # is empty. If not, it will throw OSError: duplication of </span><br style="color: rgb(51,153,102);"><span style="color: rgb(51,153,102);"> # filename when run 'os.rename(...)'</span><br style="color: rgb(0,128,128);"> if mp3.title != '' and mp3filename != name:<br> os.rename(filename, dirname + '/' + mp3filename)<br> print code, '---', filename, ' --> ', mp3filename<br> break<br> except OSError:<br> print 'duplication of name: ',filename<br> pass<br> except:<br> if code == codelist[-1]:<br> print code, '---', filename, ' ---', mp3filename<br> print "Unexpected error:", sys.exc_info()[0]<br> pass<br><br>if __name__ == '__main__':<br> p=r'/home/ljh/MyMusic'<br> if len(sys.argv) > 1:<br> p = sys.argv[1]<br> os.path.walk(p, RenameMp3File,0)
分享到:
相关推荐
这可能是一个程序或脚本的名称,用于执行实际的NCM解密和转换任务。"Dump"通常意味着数据的导出或提取,在这里可能是指将NCM文件的内容解密并转化为MP3的过程。 关于NCM到MP3的转换,涉及到以下几个知识点: 1. **...
为了解决这个问题,开发者编写了一款名为“网易云付费NCM文件转MP3”的小工具,通过C++编程语言实现了ncm文件的解密和转换功能。 【描述】:“小工具通过c++编写,利用了网易云的解密方式,解决了网易云会员到期后...
在"java 语音合成PCM转MP3"这个主题中,我们需要关注以下几个关键知识点: 1. **Java TTS库**:Java提供了内置的Java Speech API (JSAPI),其中包含Text-to-Speech引擎,如FreeTTS和MaryTTS,可以将文本转化为PCM...
在【压缩包子文件的文件名称列表】中,我们看到"All2MP3.app",这是MAC操作系统中的应用程序文件,包含了所有运行All2MP3软件所需的所有组件和资源。用户只需将这个.app文件拖放到应用程序目录中,就可以启动并使用...
为了适应这种需求,市场上出现了一款名为“SWF转MP3转换器”的专业软件工具,本文将针对这款软件的特点、功能以及潜在的优势进行详细分析。 首先,“SWF转MP3转换器”顾名思义,是一款专门设计用于转换文件格式的...
AMR Player 是一款用户能够转换 AMR 文件的应用程序。...如果你想AMR转换成MP3格式,只需选择一个AMR文件,你增加了,点击“ AMR到MP3 ” ,输入一个MP3文件名称,免费程序可以转换您的 AMR 文件一次。
4. "AoneDVDtoMP3"可能是一款具体的DVD转MP3转换软件的名称。 5. 这种转换软件可以帮助用户在各种设备上播放原本存储在DVD上的音轨,且节省存储空间。 在实际应用中,用户需要根据自己的需求选择合适的比特率,以...
在压缩包子文件的文件名称列表中,我们看到"mp3音频转换器.exe",这是一个可执行文件,通常代表MP3转换器的安装程序。用户可以通过双击这个文件来启动安装过程,按照向导的提示完成软件的安装。在安装过程中,用户...
- 微信小程序提供了录音接口,允许用户在小程序内进行录音并保存到服务器。 - 要实现录音功能,开发者需要调用`wx.startRecord`启动录音,`wx.stopRecord`停止录音,并通过`wx.onVoiceRecordEnd`监听录音结束事件...
压缩包子文件的文件名称列表仅提供了“CD转MP3工具”,这可能是软件的安装程序或便携式版本。用户下载并解压后,通常会找到一个可执行文件,双击即可运行软件。在使用前,用户可能需要查看软件的说明文档或帮助文件...
【标题】"WAV转MP3工具"是一个实用程序,专为将高质量的WAV音频文件转换为体积更小、便于存储和分享的MP3格式而设计。这种工具确保在转换过程中保持音频的高清无损特性,让用户能够在不牺牲音质的前提下,优化他们的...
标题中的“WAV 转 MP3 工具”指的是一个能够将.WAV音频格式转换成.MP3音频格式的程序。WAV是无损音频格式,数据量大,而MP3则是有损压缩格式,文件小且便于传输。这个工具可能是针对那些需要减小音频文件大小以便...
这款被描述为“超强MP3压缩软件”的应用程序,以其快速的转换速度和易用性脱颖而出。它能够帮助用户优化他们的音乐库,使其在不牺牲太多音质的情况下占用更少的手机内存。 MP3格式是数字音频编码的最常见标准之一,...
标题中的“MP4自动转换为MP3格式”指的是使用编程语言Python实现的一种自动化技术,将MP4视频文件的音频轨道提取出来,转成MP3音频文件。MP4是一种常见的视频格式,它通常包含视频流、音频流和其他元数据。而MP3则是...
标题 "WAV转MP3命令行压缩工具" 涉及到的是音频格式转换技术,主要关注如何将高质量的WAV音频文件转换为更小巧、便于传输和存储的MP3格式。这种转换过程通常借助于命令行工具来完成,使得自动化处理变得更加便捷。 ...
标题中的"F4v转mp3软件"指的是一个专门用于将F4V格式的视频文件转换为MP3音频格式的工具。F4V是Adobe Flash支持的一种视频格式,常用于网络流媒体,而MP3则是广泛使用的音频格式,适用于各种设备播放。这款软件的...
【标题】: "mp3转mid音乐" 是一个关于音频转换技术的话题,特别是涉及将MP3格式的音频文件转换为MIDI(Musical Instrument Digital Interface)格式。MP3是一种广泛使用的有损音频压缩格式,它能提供高质量的声音,...
另一个文件是"MP3转换器",这很可能是软件的可执行文件,用户可以通过双击运行这个程序来启动MP3转换功能。 综上所述,【最强MP3转换器】是一款功能强大的音频转换工具,具备广泛格式支持、快速转换、高质量输出等...
【标题】"mp3mp4转换工具"是一个专门设计用于处理多媒体文件格式转换的应用程序,主要功能是将各种类型的影片和音频文件转化为MP3、MP4以及AVI等常见格式。这种工具通常是为了满足用户在不同设备间共享、存储或播放...