python - Python 3:像 Python 2 一样使用“rb”模式读取文件
问题描述
我正在使用一些 midi 文件和一个将 midi 文件转换为 wav 文件的旧 Python 2 库。过去,Python 2 使用rb
mode 作为包含字节信息的原始字符串读取文件,例如:
'MThd\x00\x00\x00'
相比之下,Python 3 将该数据读取为字节:
b'MThd\x00\x00\x00'
作为参考,Python3 读取的完整示例 midi 文件打印如下:
b'MThd\x00\x00\x00\x06\x00\x01\x00\x05V"MTrk\x00\x00\x00\x1d\x00\xffQ\x03\x07\xa1 \x00\xffX\x04\x04\x02\x18\x08\x82\x93P\xffX\x04\x01\x00\x18\x08\x01\xff/\x00MTrk\x00\x00\x00-\x00\xff\x03\x02p1\x00\xc0\x00\x00\x90<\x0f\xa2:<\x00\xa2:>\x0f\xa2:>\x00\xa2:@\x0f\xa2:@\x00\xa2:A\x0f\xa2:A\x00\x01\xff/\x00MTrk\x00\x00\x00-\x00\xff\x03\x02p2\x00\xc1\x00\x00\x91@\x0f\xa2:@\x00\xa2:A\x0f\xa2:A\x00\xa2:C\x0f\xa2:C\x00\xa2:E\x0f\xa2:E\x00\x01\xff/\x00MTrk\x00\x00\x00\x1d\x00\xff\x03\x02tr\x00\xc2\x00\x00\x920\x0f\xa2:0\x00\xe7.$\x0f\xa2:$\x00\x01\xff/\x00MTrk\x00\x00\x00M\x00\xff\x03\x02no\x00\xc3\x00\x00\x93\x08\x04\x88N\x08\x00\x99l\t\x04\x88N\t\x00\x99l\n\x04\x88N\n\x00\x99l\x0b\x04\x88N\x0b\x00\x99l\x0c\x04\x88N\x0c\x00\x99l\r\x04\x88N\r\x00\x99l\x0e\x04\x88N\x0e\x00\x99l\x0f\x04\x88N\x0f\x00\x01\xff/\x00'
有没有办法让 Python 3 的“rb”读取选项返回与 Python 2 的“rb”读取选项返回的数据相同的数据?对此问题的任何帮助将不胜感激!
解决方案
推荐阅读
- java - 在 Appium BrowserStack 中单击绝对 xpath 不起作用
- excel - 将行从一张纸复制到六张纸
- python - 如何自动关闭 PySimpleGUI 弹出窗口?
- java - 如何从具有 CheckBox 的嵌套 Recycler 视图中获取数据?
- .net - 无法在 Windows 的 Visual Studio 代码中启动红隼
- python - 如何添加自定义函数以在 Selenium ActionChain/ActionBuilder 中运行?
- eclipse - Eclipse GWT 无法在 GWT 类上单击“下一步”
- javascript - jQuery click 在那个循环中没有点击就会触发。控制台不打印内部循环数据
- tensorflow - 如何在 Conv2d 中指定依赖于样本的内核/过滤器?
- unity3d - 场景的 GameObjects 轻微出血问题