本文实例讲述了Python修改MP3文件的方法。分享给大家供大家参考。具体如下:
用这个程序修改后的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)<<21) | ((size1&0x7f)<<14) | ((size2&0x7f)<<7) | (size3&0x7f)) filesize = filesize - headSize destfp = None try: dataLen = 0 destfp = open(destFile,'wb') srcfp.seek(headSize,1) data=srcfp.read(1024) while (data!= ''): destfp.write(data) data=srcfp.read(1024) except Exception,e: print '创建文件'+destFile+'错误',e try: if (destfp != None): destfp.close except Exception,de: print de else: print srcFile+'不需要修改 拷贝', try: shutil.copyfile(srcFile,destFile) except Exception, ce: print ce except Exception,oe: print '修改中出错',oe try: if (srcfp != None): srcfp.close() except Exception,se: print de if __name__ == "__main__": if(len(sys.argv)<3): usage(1) global process sourceDir = checkDir(sys.argv[1]) destDir = checkDir(sys.argv[2],True) print 'Mp3源目录',sourceDir print 'Mp3目的目录',destDir process = Process('...',1) pause = threading.Event() process.setPause(pause) process.start() for filename in os.listdir(sourceDir): srcPath = os.path.join(sourceDir, filename) destPath = os.path.join(destDir, filename) if os.path.isfile(srcPath): print '开始处理 '+filename, tempfilename = filename.lower() if(not tempfilename.endswith(mp3suffix)): print filename+'不是一个mp3文件\n' else: pause.set() clearMp3(srcPath,destPath) pause.clear() print '结束 \n' pause.set() process.running = False sys.exit(0)
希望本文所述对大家的Python程序设计有所帮助。

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

Kesan homogenitas tatasusunan pada prestasi adalah dwi: 1) homogenitas membolehkan pengkompil untuk mengoptimumkan akses memori dan meningkatkan prestasi; 2) tetapi mengehadkan kepelbagaian jenis, yang boleh menyebabkan ketidakcekapan. Singkatnya, memilih struktur data yang betul adalah penting.

ToCraftExecutablePythonscripts, ikutiTheseBestPractics: 1) addAshebangline (#!/Usr/bin/envpython3) tomakethescriptexecutable.2) setpermissionswithchmod xyour_script.py.3)

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
