Python wave readframes 并非 return windows 上的所有帧
Python wave readframes doesn't return all frames on windows
我正在尝试使用 wave 模块从 wavefile 中获取字节字符串:
import wave
wavfile = open(filename)
w = wave.open(wavfile)
print "nsamples:", w.getnframes()
print "sample size:", w.getsampwidth()
print "channels:", w.getnchannels()
data = w.readframes(w.getnframes())
print "number of samples read:", len(data) / (w.getsampwidth() * w.getnchannels())
在 Unix 系统上,使用 Anaconda 安装,这有效(对于任何给定的 wavefile):
nsamples: 4800000
sample size: 3
channels: 1
number of samples read: 4800000
但是在 Windows 系统上,也使用 Anaconda 安装,这不起作用(对于任何给定的 wavefile):
nsamples: 4800000
sample size: 3
channels: 1
number of samples read: 443
读取的 443 个样本等于 4800000 的前 443 个样本。
有什么想法吗?
找到解决方案,不是 wave 模块的问题:
wavfile = open(filename, 'rb')
根据:Python Does Not Read Entire Text File
我正在尝试使用 wave 模块从 wavefile 中获取字节字符串:
import wave
wavfile = open(filename)
w = wave.open(wavfile)
print "nsamples:", w.getnframes()
print "sample size:", w.getsampwidth()
print "channels:", w.getnchannels()
data = w.readframes(w.getnframes())
print "number of samples read:", len(data) / (w.getsampwidth() * w.getnchannels())
在 Unix 系统上,使用 Anaconda 安装,这有效(对于任何给定的 wavefile):
nsamples: 4800000
sample size: 3
channels: 1
number of samples read: 4800000
但是在 Windows 系统上,也使用 Anaconda 安装,这不起作用(对于任何给定的 wavefile):
nsamples: 4800000
sample size: 3
channels: 1
number of samples read: 443
读取的 443 个样本等于 4800000 的前 443 个样本。 有什么想法吗?
找到解决方案,不是 wave 模块的问题:
wavfile = open(filename, 'rb')
根据:Python Does Not Read Entire Text File