为什么在MM32中的MicroPython中无法打开二进制文件呢?
2021/11/27 20:43:02
本文主要是介绍为什么在MM32中的MicroPython中无法打开二进制文件呢?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简 介: 对于在MM32F3277的MicroPython下, 对于SD卡中的文件按照二进制方式进行读写进行测试,发现MicroPython下无法支持对于二进制文件的操作。根据现在这种测试,需要找到具体的 MM32F3277现在版本上对于文件操作所存在的问题。使其能够支持对于二进制数据的读取和写入。
关键词
: MicroPython,MM32,MM32F3277
§01 二进制文件
使用二进制文件存储数据可以100%利用文件大小,而使用ASCII码存储数据则往往只能达到50%的存储效率。也就是一个原来的8bit的二进制数据需要两个byte来表示。
一、在MicroPython中操作二进制文件
下面这段代码,分别运行在MM32F3277的MicroPython中,以及电脑中,所得到的结果不同。
1、MicroPython中的结果
- 运行代码:
from machine import Pin import utime filename = 'data.dat' with open(filename, "wb") as f: f.write(b'\x01\x02') with open(filename, 'rb') as f: buf = f.read() print(type(buf)) print(buf)
- 输出结果:
>> Download MicroPython : 28 lines/625 characters. >> ------------------------------------------------------------------------- Error:5/525 2 <class 'str'>
可以看到,上面对于SD卡中的文件,如果写入的数字不是ASCII码,在读出的时候出现错误。
2、Windows中运行结果
- 运行代码:
from head import * filename = r'd:\temp\data.dat' with open(filename, "wb") as f: f.write(b'\x01\x02') with open(filename, 'rb') as f: buf = f.read() printf(type(buf)) printf(buf)
- 输出结果:
<class 'bytes'> b'\x01\x02'
二、为什么不同呢?
上面的输出的结果可以看到,在MicroPython
下,是无法在文件中写入非ASCII
数据的。并且 f.read()
返回永远是 <class ‘str
’>。 在Windows
下, 返回的数据类型是 <class 'bytes'>
在MicroPython下,如果:
with open(filename, "wb") as f: f.write(b'\x55\x56')
那么可以返回:
2 <class 'str'> UV >>>
在Windows下返回结果为:
<class 'bytes'> b'UV'
1、那么问题来了
为什么有这样的区别呢?
2、所带来的问题
这样所带来的问题,就是降低了MicroPython下文件存储的效率。并且对于读入的数据,如果只能是ASCII码,也会使得处理的效率降低。
比如在SD卡中如果存储一个MP3的文件,进行播放其中的音乐数据,按照现在的方式是无法由MicroPython读入的。
※ 改进MicroPython ※
对于在MM32F3277的MicroPython下, 对于SD卡中的文件按照二进制方式进行读写进行测试,发现MicroPython下无法支持对于二进制文件的操作。根据现在这种测试,需要找到具体的 MM32F3277现在版本上对于文件操作所存在的问题。使其能够支持对于二进制数据的读取和写入。
这篇关于为什么在MM32中的MicroPython中无法打开二进制文件呢?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python