引言 本篇ESP32 / ESP8266 MicroPython教程主要说明如何从MicroPython的文件系统中读取一个文件。本教程在 esp32 和 esp8266 上进行了测试。 通常我会使用Putty与MicroPython命令行界面进行交互。但是为了演示,我在本篇教程中会使用Arduino Serial Monitor与设备进行交互。因为它也要与设备之间建立串行连接,所以这种交互方式其实与使用Putty没有什么不同。 打开Serial Monitor之后,只需选择正确的COM端口和波特率(115200)即可。请注意,我们还需要在波特率左边的下拉列表中选择回车或回车&换行选项,以使命令行界面知道命令终止。 您也可以使用Putty或其他您喜欢的其他软件与设备进行交互。
代码 [mw_shl_code=applescript,true]file = open ("initialFile.txt", "w")
file.write("First Line \n")
file.write("Second Line")
file.close()
import os
os.listdir() 代码运行之后,您将看到与图1类似的输出结果。 图1 - 将初始文件写入文件系统。
然后,我们仍然使用open(打开)函数将文件打开,该函数的第一个参数是文件名称,但是现在我们将第二个参数设置为字符串“r“,表示我们想要读取文件内容。 我们将在无参数条件下调用这个方法,所以测试结果将会返回完整的文件内容。在调用之后,您就会看到被打印出来的文件内容。注意换行符也会显式打印出来。 最后,调用close(关闭)方法,关闭文件。 [mw_shl_code=applescript,true]file = open("initialFile.txt", "r")
file.read()
file.close()[/mw_shl_code]
[mw_shl_code=applescript,true]file = open("initialFile.txt", "r")
file.readline()
file.readline()
file.close()[/mw_shl_code] 两组命令的运行结果如下所示。
图2 - 两种不同方法的文件读取结果。
[mw_shl_code=applescript,true]file = open("initialFile.txt", "r")
file.readline().rstrip("\n")
file.readline().rstrip("\n")
file.close()[/mw_shl_code] 运行结果如图3所示,“\n“字符没有再显示出来。由于在原来的字符串中,“\n“前面加了一个空格,所以显示结果的第一行末尾也有一个空格。 [mw_shl_code=applescript,true]os.remove("initialFile.txt")
os.listdir()[/mw_shl_code] 图3 - 删除字符串末尾的“\n”字符。
为了避免在文件系统中留下垃圾,我们将调用os模块的remove函数(输入参数为文件名)将文件删除。此时调用listdir函数,就不会再看到我们创建的文件了。 [mw_shl_code=applescript,true]os.remove("initialFile.txt")
os.listdir()[/mw_shl_code] 图4所示是该命令的输出结果。如图所示,只有boot.py一个文件。请不要删除这个文件。
图4 - 从MicroPython文件系统中删除文件。 最后说明 [mw_shl_code=applescript,true]dir(os)
dir(file)
dir(str)[/mw_shl_code] 您会看到如图5所示的列表,其中包括了一些对象的可用方法。在您手头没有文档的情况下,这种方法非常有用。
图5 - 列出对象的可用方法。
查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程汇总贴
|