我平时喜欢把《罗辑思维》的MP3放在手机里,方便路上听。但是,在网上下载的MP3有一点不好,它的名字会带有超长的网站名前缀,例如"【自在村www.zizaicun.com整理】44 世人都说共和好.mp3",造成的问题就是,我在手机上查看文件时,看到的画面是这样的:
当我想要选集的时候,根本不知道该选哪个好,我只能点开文件,等待标题字条慢慢的移动过来,我才能看到节目的名字,如下图所示。而其中等待时间长达12秒!简直无法忍受!有时候我为了选一集我没看过的节目,需要花两分钟来找。
对此,解决办法当然是有的,最简单粗暴的莫过于手动修改,但是对于我这么一个学计算机的人来说,这种方法未免太低级,另一种方法就是下个专门的收音机软件来听,但我又不想看广告,所以我最终决定用python来解决这个问题。
尝试一:修改文件名
我的第一个想法当然就是批量修改文件名了,这个很简单,网上教程很多,我就贴一下我的代码:
# coding=gbk import os,re,sys def RenameFiles(srcdir): srcfiles = os.listdir(srcdir) for srcfile in srcfiles: srcfilename = srcfile.partition('】') #我用】作为标示符,截取其之后的字符串作为新文件名 destfile = srcfilename[2] os.rename(srcdir+os.sep+srcfile, srcdir+os.sep+destfile) srcdir = "D:\\09录音\\罗辑思维2014" #这里填windows上的路径名,一定要用RenameFiles(srcdir)
尝试二:Mutagen大显神威!
接下来的工作就是想办法让python能够修改mp3的tag信息,关于音频文件的处理,python专门有个第三方包mutagen可以借助。不过,在安装mutagen前,最好安装一下easy_install,方便以后对于第三方包的管理。
easy_install的安装很简单,百度一下就行,但是。。。我在安装时,运行了ez_setup.py之后,却显示了UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xd7 in position 1: ordinal not in range(128)这么一条错误信息,导致script文件夹无法安装,我在网上找了好久,总算找到了解决方法,详情请看这篇文章。
装完easy_install后,只需要在cmd中输入easy_install mutagen就能直接安装Mutagen了。
接下来的一切就交给mutagen解决了,我的做法是直接把所有mp3文件的tag信息全部删除,代码如下:
#coding=gbk import os,re,sys from mutagen.mp3 import MP3 from mutagen.id3 import ID3 def DeleteTag(srcdir): srcfiles = os.listdir(srcdir) for srcfile in srcfiles: audio = ID3(srcdir+os.sep+srcfile) audio.delete() srcdir = "D:\\09录音\\罗辑思维2014" DeleteTag(srcdir)
原文地址:http://blog.csdn.net/thomas_in_june/article/details/41924723