本文实例讲述了python修改mp3文件的方法。分享给大家供大家参考。具体如下:
用这个程序修改后的MP3比原来要小一些了,因为一张图片被删除了,起到了给MP3″瘦身”的作用。在一些mp3中,每个都有一张400多K的图片,10几个MP3,就相当一个普通MP3文件的大小了。
# -*- coding: cp936 -*-"""将MP3文件中的ID3V2.3部分去掉,以便在MP3机上播放用法:mp3lcear [源mp3目录] [生成的mp3目录]"""import sysimport osimport stringimport shutilimport structimport threadimport threadingimport timemp3suffix = 'mp3'class Process(threading.Thread):"""简单地在运行的过程中显示进度"""def __init__(self,msg,sleepTime):threading.Thread.__init__(self)self.msg = msgself.running = Trueself.sleepTime = sleepTimedef setPause(self,pause):self.pause = pausedef setRunning(self,running):self.running = runningdef run (self):while(self.running):self.pause.wait()print self.msg,time.sleep(self.sleepTime)def usage(code, msg=''):"""程序的使用方法"""print >> sys.stderr, __doc__if msg:print >> sys.stderr, msgsys.exit(code)def checkDir(argDir,create=False):"""检查目录是否存在,如果create为Ture,则新建一个目录"""tempDir = Noneif(not os.path.isdir(argDir)):currentDir = os.path.abspath(os.curdir)tempDir = os.path.join(currentDir,argDir)if(not os.path.isdir(tempDir) and create):os.mkdir(tempDir)else:usage(1,"目录"+argDir+"不存在")else:tempDir = os.path.abspath(argDir)return tempDirdef clearMp3(srcFile,destFile):"""修改mp3文件,并将其创建到destFile所指定的地址"""global processsrcfp = Nonefilesize = os.path.getsize(srcFile)try:srcfp = open(srcFile,'rb')head = srcfp.read(3)if(head=='ID3'):srcfp.seek(3,1)size = srcfp.read(4)if(not len(size)==4):print srcFile+'文件格式错误'else:size0 = struct.unpack('b',size[0])[0]size1 = struct.unpack('b',size[1])[0]size2 = struct.unpack('b',size[2])[0]size3 = struct.unpack('b',size[3])[0]headSize =(((size0&0x7f)希望本文所述对大家的Python程序设计有所帮助。
登录后复制
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2299303.html