ESP32 / ESP8266 MicroPython教程:写入文件-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3662|回复: 0

ESP32 / ESP8266 MicroPython教程:写入文件

[复制链接]
发表于 2019-5-28 13:09 | 显示全部楼层 |阅读模式
本帖最后由 dfrobot 于 2019-5-24 22:20 编辑

介绍

本ESP32 / ESP8266 MicroPython教程的目标是解释如何用MicroPython创建文件。代码在ESP32和ESP8266上都进行了测试。这里显示的打印来自ESP32上的测试。




本教程将在MicroPython的内部文件系统中创建一个FAT格式的文件,保存在FLASH存储器中[1]。


代码

首先,我们会打开要写入数据的文件。请注意,不需要提前新建文件。为此,我们将调用open函数(https://docs.micropython.org/en/latest/library/uio.html#uio.open),并将要新建文件的名称和模式作为函数的输入参数。我们新建的文件名为”myTestFile.txt”,第二个参数使用字符串”w”,表示我们将向文件内写入内容。

上述函数调用将会返回一个TextIOWrapper类的对象,我们把它保存到一个叫做file的变量中。在将实际内容写入到文件时将会用到该对象。为了确认函数调用成功,我们把函数返回的对象类型也打印了出来。

[mw_shl_code=applescript,true]file = open ("myTestFile.txt", "w")
print(type(file))[/mw_shl_code]




预期的输出结果如图1所示。可见,函数调用返回的对象类型正是TextIOWrapper。


1esp32-esp8266-micropython-open-file-for-write.png


图1 - 使用MicroPython打开要写入的文件。




接下来,为了写入实际的内容,我们将调用file对象的write方法(该方法的输入参数就是我们想要写入文件的内容)。该调用的返回值是所写入的字节数[1]。我们将使用如下所示的命令写入一些文件内容。

[mw_shl_code=applescript,true]file.write("Writing content from MicroPython")[/mw_shl_code]




输出结果应该与图2类似,表示向文件中写入了32个字节。

2esp32-esp8266-writing-content-to-file.png



图2 - 将内容写入文件。




最后,需要调用file对象的close方法将文件关闭。

[mw_shl_code=applescript,true]file.close()[/mw_shl_code]




可以列出当前文件夹下的所有文件,以确认文件是否建立成功。为此,只需导入os模块,并调用listdir函数(http://docs.micropython.org/en/v1.8.7/esp8266/library/uos.html?highlight=os#uos.listdir)即可。

[mw_shl_code=applescript,true]import os
os.listdir()[/mw_shl_code]





预期结果如图3所示,其中显示了新建的“myTestFile.txt“文件。请注意,系统中已有一个名为boot.py的文件,它是在开发板启动时MicroPython运行所产生的特殊文件。

3esp32-esp8266-micropython-list-files-in-directory.png



图3 - 列出当前文件夹下的所有文件。




最后,将新建的“myTestFile.txt”文件重命名为“testFile.txt”。为此,需要使用os模块的rename函数(http://docs.micropython.org/en/v1.8.7/esp8266/library/uos.html?highlight=os#uos.rename)。该函数的第一个参数是实际文件名,第二个参数是新文件名。调用该方法后,我们会再次把文件夹的内容打印出来。

[mw_shl_code=applescript,true]os.rename('myTestFile.txt', 'testFile.txt')
os.listdir()[/mw_shl_code]




预期结果如图4所示。

4esp8266-esp32-micropython-rename-file.png



图4 - 使用rename函数对新建文件进行重命名。


注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。
他写了很多有关ESP32、ESP8266的有用的教程和项目。

查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程汇总贴
英文版教程 : ESP32 tutorial

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:50 , Processed in 0.202099 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表