#!/usr/bin/env python# -*- coding: cp936 -*-"""用于批量转换特定目录下所有MP3名称(包括改目录下所有子目录),新名称格式:“演唱者-歌曲名称”。
Mp3文件格式:
at end of file - 128 bytesoffset type len name--------------------------------------------0 char 3 "TAG"3 char 30 title33 char 30 artist63 char 30 album93 char 4 year97 char 30 comments127 byte 1 genre--------------------------------------------"""import sys
import os
import os.path
class MP3INFO:
"""读取mp3文件中的演唱者和歌曲名称信息"""
def __init__(self, filename):
self.title = ''
self.artist = ''
f = file(filename,'rb')
f.seek(-128,2)
s=f.read(3)
if s == 'TAG':
# 判断是否是mp3文件 strlist = []
for i in (30,30):
s = f.read(i)
pos = s.find('\0')
if pos == 0:
s = ''
elif pos > 0:
s = s[0:pos]
strlist.append(s.strip())
self.title, self.artist = strlist
f.close()
def RenameMp3File(arg,dirname,names):
"""dirname: 目录名;names:目录下所有文件列表"""
for name in names:
filename = dirname + '/' + name
if os.path.isdir(filename) or name[-3:].lower() != 'mp3':
pass
#该文件如果是目录或不是.mp3文件,则什么也不作
else:
mp3 = MP3INFO(filename)
#拼装新的文件名
if mp3.title == '':
mp3filename = name
elif mp3.artist == '':
mp3filename = mp3.title + '.mp3'
else:
mp3filename = mp3.artist + ' - ' + mp3.title + '.mp3'
#消除新文件名中的非法字符
a = '\/:*?"<>|'
t = [ x for x in mp3filename if x not in a]
mp3filename = ''
for x in t:
mp3filename += x
#如果是在winxp下,无需判断字符编码
#linux下需要将原来的字符编码格式转换为UTF8的格式,否则显示乱码
codelist = ['gbk', 'hz', 'euc-tw', 'big5', 'gb18030', 'gb2312', \
'utf-8', 'utf-16', 'big5-hkscs','iso-2022-cn',\
'iso-2022-jp', 'iso-2022-kr', 'iso-8859-1']
#codelist = ['utf-8', 'gbk', 'big5', 'iso-8859-1']
for code in codelist:
try:
mp3filename = unicode(mp3filename, code)
mp3filename = mp3filename.encode('utf-8')
# Judge that mp3.title not empty, because destination # filename will be equal to source filename when mp3.title # is empty. If not, it will throw OSError: duplication of # filename when run 'os.rename(...)' if mp3.title != '' and mp3filename != name:
os.rename(filename, dirname + '/' + mp3filename)
print code, '---', filename, ' --> ', mp3filename
break
except OSError:
print 'duplication of name: ',filename
pass
except:
if code == codelist[-1]:
print code, '---', filename, ' ---', mp3filename
print "Unexpected error:", sys.exc_info()[0]
pass
if __name__ == '__main__':
p=r'/home/ljh/MyMusic'
if len(sys.argv) > 1:
p = sys.argv[1]
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...
在压缩包子文件的文件名称列表中,“MP3转换工具”可能是这个转换器的执行程序或者配置文件。安装或运行这个文件,用户就可以开始使用MP3转换器的各项功能。为了确保安全,用户在下载和使用时应确保来源可靠,避免...
AMR Player 是一款用户能够转换 AMR 文件的应用程序。...如果你想AMR转换成MP3格式,只需选择一个AMR文件,你增加了,点击“ AMR到MP3 ” ,输入一个MP3文件名称,免费程序可以转换您的 AMR 文件一次。
4. "AoneDVDtoMP3"可能是一款具体的DVD转MP3转换软件的名称。 5. 这种转换软件可以帮助用户在各种设备上播放原本存储在DVD上的音轨,且节省存储空间。 在实际应用中,用户需要根据自己的需求选择合适的比特率,以...
在【压缩包子文件的文件名称列表】中,我们看到"All2MP3.app",这是MAC操作系统中的应用程序文件,包含了所有运行All2MP3软件所需的所有组件和资源。用户只需将这个.app文件拖放到应用程序目录中,就可以启动并使用...
在压缩包子文件的文件名称列表中,我们看到"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等常见格式。这种工具通常是为了满足用户在不同设备间共享、存储或播放...