我想使用python和pydub庫將大型podcasts mp3文件分割成更小的5分鐘塊。這是我的代碼:pydub - memoryerror
folder = r"C:\temp"
filename = r"p967.mp3"
from pydub import AudioSegment
sound = AudioSegment.from_mp3(folder + "\\" + filename)
這適用於小文件,但對於我感興趣的大型播客100MB +。這會返回以下錯誤。
Traceback (most recent call last):
File "C:\temp\mp3split.py", line 6, in <module>
sound = AudioSegment.from_mp3(folder + "\\" + filename)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 522, in from_mp3
return cls.from_file(file, 'mp3', parameters)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 511, in from_file
obj = cls._from_safe_wav(output)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 544, in _from_safe_wav
return cls(data=file)
File "C:\Python27\lib\site-packages\pydub\audio_segment.py", line 146, in __init__
data = data if isinstance(data, (basestring, bytes)) else data.read()
MemoryError
這是圖書館的限制嗎?我應該使用另一種方法來實現這一目標嗎?
如果我添加下面的代碼來檢查運行時的內存狀態。
import psutil
print psutil.virtual_memory()
此打印:
svmem(total=8476975104L, available=5342715904L, percent=37.0 used=3134259200L, free=5342715904L)
這表明,我認爲有足夠的內存在操作的開始,但我很高興被證明是錯誤的。
感謝您的更新。對於其他人,'svmem'報告可用的虛擬內存。這顯示大約5Gb可用,50x需要。 – Prune