码迷,mamicode.com
首页 > 编程语言 > 详细

python wave 库 读取 BytesIO 对象的注意事项

时间:2018-10-28 11:12:16      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:取值   bytes   pre   取数   class   byte   对象   指针   content   

程序中遇到需要使用临时文件时,常使用内存中的 io.BytesIO() 代替实体二进制文件,以避免磁盘IO,同时免去了考虑文件名的麻烦。

file = io.BytesIO()
file.write(content)
content = file.getvalue()

如上所示,取值时通常使用 getvalue() 而不是 read(),若使用 read() 读取数据,需要先 file.seek(0) 使指针回到起点。

wave 模块默认是同时支持 文件路径 和 BytesIO 对象的,但当输入是 BytesIO 时,wave 并没有自动先 seek(0),故

使用 wave.open(wav_file, ‘rb‘) 之前,需要先 seek(0):

if isinstence(wav_file, io.BytesIO):
    wav_file.seek(0)
with wave.open(wav_file, ‘rb‘) as wf:
    ......
    ......

python wave 库 读取 BytesIO 对象的注意事项

标签:取值   bytes   pre   取数   class   byte   对象   指针   content   

原文地址:https://www.cnblogs.com/dylanchu/p/9864276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!