Wave readframes stackoverlow。删除范围

时间:2014-04-07 05:37:29

标签: python python-2.7

嗨,我有阅读大波浪文件的问题。 好的代码但范围会导致stackoverflow。

handle = wave.open('data_sylaby\s1.wav', 'r')
framerate = handle.getframerate();
nframes = handle.getnframes()

for i in range(handle.getnframes()):
        frame = handle.readframes(1)
        data = struct.unpack("<h", frame)

新代码,但它会抛出错误

  

unpack需要长度为2的字符串参数

。 第二个和第三个版本抛出此错误但它应该像带范围的版本一样工作。 我需要删除范围,因为它会占用我10Gb的内存。

错误代码:

    handle = wave.open('data_sylaby\s1.wav', 'r')
    framerate = handle.getframerate();
    nframes = handle.getnframes()
    i = 0
    while i  < nframes:
        frame = handle.readframes(1)
        data = struct.unpack("<h", frame)
        i = i + 1

第三版也错误:

for j in range(nframes/framerate + 1):
        for i in range(j *framerate, (j+1)*framerate):
            if i >= nframes:
                break

0 个答案:

没有答案