pydub - 内存错误
pydub - memoryerror
我正在尝试使用 python 和 pydub 库将大型播客 mp3 文件拆分为较小的 5 分钟块。这是我的代码:
folder = r"C:\temp"
filename = r"p967.mp3"
from pydub import AudioSegment
sound = AudioSegment.from_mp3(folder + "\" + filename)
这适用于小文件,但对于大型播客,我对 100mb 以上感兴趣。这个returns下面的错误。
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)
这向我表明在操作开始时有足够的内存,尽管我很高兴被证明是错误的。
是的,most 可能的原因是您只是 运行 可用内存不足。在执行该语句之前,您知道有多少可用内存吗?考虑在失败语句之前插入一个系统调用(参见 os 包)。
我正在尝试使用 python 和 pydub 库将大型播客 mp3 文件拆分为较小的 5 分钟块。这是我的代码:
folder = r"C:\temp"
filename = r"p967.mp3"
from pydub import AudioSegment
sound = AudioSegment.from_mp3(folder + "\" + filename)
这适用于小文件,但对于大型播客,我对 100mb 以上感兴趣。这个returns下面的错误。
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)
这向我表明在操作开始时有足够的内存,尽管我很高兴被证明是错误的。
是的,most 可能的原因是您只是 运行 可用内存不足。在执行该语句之前,您知道有多少可用内存吗?考虑在失败语句之前插入一个系统调用(参见 os 包)。