首页 > 代码库 > 想批量修改罗辑思维MP3的文件名?Python帮你解决!

想批量修改罗辑思维MP3的文件名?Python帮你解决!

我平时喜欢把《罗辑思维》的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)


结果似乎不错,文件名全部正常了,但是,导入手机后发现仍然没有改变!原来苹果手机默认把Mp3TAG中的标题信息作为显示名称的第一选择,只有当没有tag标题时才会显示文件名。所以,第一次尝试以失败告终。


尝试二: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)

大功告成!最后把文件导入手机,便能很顺利的看到这个界面了~有没有比之前的清爽很多~~







想批量修改罗辑思维MP3的文件名?Python帮你解决!