【雕爷学编程】MicroPython手册之文件操作模块

在这里插入图片描述

MicroPython是为了在嵌入式系统中运行Python 3编程语言而设计的轻量级版本解释器。与常规Python相比,MicroPython解释器体积小(仅100KB左右),通过编译成二进制Executable文件运行,执行效率较高。它使用了轻量级的垃圾回收机制并移除了大部分Python标准库,以适应资源限制的微控制器。

MicroPython主要特点包括:
1、语法和功能与标准Python兼容,易学易用。支持Python大多数核心语法。
2、对硬件直接访问和控制,像Arduino一样控制GPIO、I2C、SPI等。
3、强大的模块系统,提供文件系统、网络、图形界面等功能。
4、支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
5、代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
6、开源许可,免费使用。Shell交互环境为开发测试提供便利。
7、内置I/O驱动支持大量微控制器平台,如ESP8266、ESP32、STM32、micro:bit、掌控板和PyBoard等。有活跃的社区。

MicroPython的应用场景包括:
1、为嵌入式产品快速构建原型和用户交互。
2、制作一些小型的可 programmable 硬件项目。
3、作为教育工具,帮助初学者学习Python和物联网编程。
4、构建智能设备固件,实现高级控制和云连接。
5、各种微控制器应用如物联网、嵌入式智能、机器人等。

使用MicroPython需要注意:
1、内存和Flash空间有限。
2、解释执行效率不如C语言。
3、部分库函数与标准版有差异。
4、针对平台优化语法,订正与标准Python的差异。
5、合理使用内存资源,避免频繁分配大内存块。
6、利用原生代码提升速度关键部位的性能。
7、适当使用抽象来封装底层硬件操作。

总体来说,MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。

在这里插入图片描述

MicroPython的文件操作模块是uos模块,它提供了一些基本的文件和目录操作函数,类似于Python标准库中的os模块。

它的主要特点有:

它支持多种文件系统,如FAT、LittleFS和SPIFFS,可以在不同的设备上使用。
它可以在内存中创建虚拟文件系统,用于临时存储数据或测试。
它可以使用mount和umount函数来挂载和卸载文件系统,或者使用VfsLfs2和VfsFat类来创建文件系统对象。

MicroPython的文件操作模块的应用场景有:

读写文件:可以使用open函数来打开一个文件,然后使用read、write、seek、tell等方法来进行读写操作。例如,可以将传感器的数据写入一个文本文件,或者从一个配置文件中读取参数。
管理目录:可以使用listdir、mkdir、rmdir、remove、rename等函数来列出、创建、删除、移动或重命名目录和文件。例如,可以根据日期或类型来组织文件,或者清理不需要的文件。
获取信息:可以使用stat、statvfs、getcwd、chdir等函数来获取文件或目录的属性,如大小、修改时间、剩余空间等,或者获取或改变当前工作目录。例如,可以检查文件是否存在,或者切换到不同的目录。

MicroPython的文件操作模块需注意事项有:

不同的设备可能支持不同的文件系统,需要根据具体情况选择合适的文件系统。
文件操作可能会消耗较多的内存和时间,需要合理地分配资源和优化性能。
文件操作可能会出现错误或异常,需要使用try-except语句来捕获和处理。

MicroPython的文件操作模块几个实际运用程序案例如下:

案例1:读取温湿度传感器DHT11的数据,并将其写入一个CSV文件::

import uos
import machine
import time

# 创建DHT11对象,连接到引脚4
dht11 = machine.DHT11(machine.Pin(4))

# 打开一个CSV文件,追加模式
f = uos.open('dht11.csv', 'a')

# 循环10次
for i in range(10):
    # 读取温湿度数据
    temp, hum = dht11.read()
    # 获取当前时间戳
    timestamp = time.time()
    # 写入一行数据,用逗号分隔
    f.write('{},{},{}\n'.format(timestamp, temp, hum))
    # 延时1秒
    time.sleep(1)

# 关闭文件
f.close()

案例2:列出SD卡根目录下的所有文件和目录,并打印其名称和大小::

import uos

# 挂载SD卡到/mnt路径,使用SPI接口
uos.mount(uos.VfsFat(machine.SPI(1), machine.Pin(15)), '/mnt')

# 列出/mnt路径下的所有项目
items = uos.listdir('/mnt')

# 遍历每个项目
for item in items:
    # 获取项目的完整路径
    path = '/mnt/' + item
    # 获取项目的属性,返回一个元组
    stat = uos.stat(path)
    # 获取项目的大小,单位为字节
    size = stat[6]
    # 打印项目的名称和大小
    print(item, size)

# 卸载SD卡
uos.umount('/mnt')

案例3:在内存中创建一个虚拟文件系统,并在其中创建一个hello.txt文件,写入Hello World!::

import uos

# 创建一个字节数组,大小为1MB
buffer = bytearray(1024 * 1024)

# 在字节数组上创建一个FAT文件系统
vfs = uos.VfsFat(buffer)

# 在虚拟文件系统上创建一个hello.txt文件,写入模式
f = vfs.open('hello.txt', 'w')

# 写入Hello World!
f.write('Hello World!')

# 关闭文件
f.close()

# 打印虚拟文件系统的信息
print(vfs.statvfs('/'))

# 打印hello.txt文件的内容
print(vfs.open('hello.txt', 'r').read())

案例4:创建和写入文件:

import uos

# 创建文件并写入内容
with open("data.txt", "w") as file:
    file.write("Hello, MicroPython!")

在这个例子中,我们使用uos模块的open函数创建一个名为"data.txt"的文件,并将其与一个变量file关联起来。然后,我们使用write方法向文件中写入一些内容。通过使用open函数和write方法,我们可以创建新的文件并向其中写入数据。

案例5:读取文件内容::

import uos

# 读取文件内容
with open("data.txt", "r") as file:
    content = file.read()

# 打印文件内容
print(content)

在这个例子中,我们使用uos模块的open函数打开一个名为"data.txt"的文件,并将其与一个变量file关联起来。然后,我们使用read方法读取文件的内容,并将其存储在变量content中。最后,我们使用print函数打印文件的内容。通过使用open函数和read方法,我们可以读取文件的内容并进行相应的处理。

案例6:删除文件::

import uos

# 删除文件
uos.remove("data.txt")

在这个例子中,我们使用uos模块的remove函数删除名为"data.txt"的文件。通过使用remove函数,我们可以从文件系统中删除指定的文件。

案例7:创建和写入文件

import uos

filename = "data.txt"
data = "Hello, MicroPython!"

# 打开文件以写入数据
file = uos.open(filename, "w")
file.write(data)
file.close()

在这个例子中,我们使用 uos.open() 函数打开一个文件,指定文件名和打开模式为 “w”(写入模式)。然后,我们使用 write() 方法将数据写入文件。最后,我们使用 close() 方法关闭文件。

案例8:读取文件内:

import uos

filename = "data.txt"

# 打开文件以读取数据
file = uos.open(filename, "r")
data = file.read()
file.close()

print(data)

在这个例子中,我们使用 uos.open() 函数打开一个文件,指定文件名和打开模式为 “r”(读取模式)。然后,我们使用 read() 方法读取文件内容,并将其存储在变量 data 中。最后,我们使用 print() 函数将文件内容打印出来。

案例9: 删除文:

import uos

filename = "data.txt"

# 删除文件
uos.remove(filename)

在这个例子中,我们使用 uos.remove() 函数删除指定的文件。只需提供文件名作为参数即可。

这些案例展示了 MicroPython 中 uos 模块的实际应用,用于创建、写入、读取和删除文件。请注意,在操作文件之前,您需要确保文件系统已经正确地挂载,并且您有适当的权限来执行文件操作。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值