我有一些代码从python 2转换为python 3(在我的示例中没有明显的区别,但已更改)。基本上,我的代码读取二进制音频文件。 相同原始音频文件的大小在读取后完全不同,我不知道为什么。主要区别在于其中一个程序在python 3.8中运行,而较旧的程序在2.7中运行。
Python 3代码:
def __read_file(self, file):
try:
a_dir = os.path.join(TestContext().accuracy_dir,self._accuracy,"Audio") if \
self._accuracy else TestContext().media_dir
if "http://" in file:
f = urllib.request.urlopen(file)
a_buffer = f.read()
else:
if False == os.path.isabs(file):
file = os.path.join(a_dir, file)
with open(file, mode='rb') as f:
a_buffer = f.read()
except IOError as e:
raise IOError('I/O error({0}): {1}'.format(e.errno, e.strerror))
print("AUDIO BUFFER LENGTH", len(a_buffer))
return a_buffer
Python 3结果:
AUDIO BUFFER LENGTH: 3977
Python 2结果:
AUDIO BUFFER LENGTH: 122400
我的python 2代码与urllib2而不是urllib完全相同。
此外,python 2方式也是正确的方式。我的音频文件应该很大。我不确定为什么它突然变小。
感谢您的帮助。