用这个程序修改后的MP3比原来要小一些了,因为一张图片被删除了,起到了给MP3"瘦身"的作用。在一些mp3中,每个都有一张400多K的图片,10几个MP3,就相当一个普通MP3文件的大小了。
# -*- coding: cp936 -*- """ 将MP3文件中的ID3V2.3部分去掉,以便在MP3机上播放 用法:mp3lcear [源mp3目录] [生成的mp3目录] """ import sys import os import string import shutil import struct import thread import threading import time mp3suffix = 'mp3' class Process(threading.Thread): """ 简单地在运行的过程中显示进度 """ def __init__(self,msg,sleepTime): threading.Thread.__init__(self) self.msg = msg self.running = True self.sleepTime = sleepTime def setPause(self,pause): self.pause = pause def setRunning(self,running): self.running = running def 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, msg sys.exit(code) def checkDir(argDir,create=False): """ 检查目录是否存在,如果create为Ture,则新建一个目录 """ tempDir = None if(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 tempDir def clearMp3(srcFile,destFile): """ 修改mp3文件,并将其创建到destFile所指定的地址 """ global process srcfp = None filesize = 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程序设计有所帮助。
查看更多关于Python修改MP3文件的方法的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did88952