MicroPython内核开发笔记书内软件用例 :文件系统实验
简 介: 本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的关于文件读写操作以及 os 相关的软件用例部分内容。
关键词
: MicroPython,MM32F3277,文件操作
- 本书稿内容隶属于 MicroPython内核开发笔记:书内嵌入实验任务 中的内容。
软件用例:
这部分书稿内容包括有:
- 对于文件文件进行读写。
- 关于 os 的相关操作。
- 书稿内位置: 第七章相关内容;
§01 书稿内容
一、基础实验
1、文本文件写入
下面代码是在文件 text.txt 中写入由 ‘*’ 构成的三角形文件。
import machine
fname = 'text.txt'
with open(fname, 'w') as f:
for i in range(10):
f.write('*'*(i+1) + '\n')
print("Write text file.")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
代码执行后,信息显示:
2
3
4
5
6
7
8
9
10
11
Write text file.
>>>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
每执行一句 f.write, 该函数返回写入文件的字符数量。如果不希望程序在 f.write 输出写入字符数量,可以使用:
_ = f.write('*' * (i+1) + '\n')
- 1
下面程序是将 15 行杨辉三角形数值写入文件 yhtriangle.txt 文件中。读出结果见后面文本文件读取实验。
import machine
LINE_NUM = 15
b = [1]
fname = 'yhtriangle.txt'
with open(fname, 'w') as f:
for i in range(LINE_NUM):
strall = ' '.join([str(s) for s in b]) + '\n'
f.write(strall)
b = [1] + [b[n]+b[n+1] for n in range(len(b)-1)] + [1]
print('Write text file end.')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2、文本文件读取
下面代码将 text.txt 文件中的每一行读入,并显示出来。
fname = 'text.txt'
print("Text file contents:")
with open(fname, 'r') as f:
for l in f.readlines():
print(l.strip('\n'))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
程序运行结果:
Text file contents:
*
**
***
****
*****
******
*******
********
*********
**********
>>>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
下面代码是将上面 fname 修改成 yhtriangle.txt 之后,读出杨辉三角形文件中的内容。
Text file contents:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
>>>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
由于文件读取返回的类型都是 str ,所以还无法直接读取二进制文件。
二、 os相关命令
下面通过交互式操作测试 os 相关功能。 在交互窗口内输入以下命令。
import os
dir(os)
os.listdir('')
- 1
- 2
- 3
- 4
MicroPython 输出结果为:
['__name__', 'remove', 'chdir', 'getcwd', 'ilistdir', 'listdir', 'mkdir', 'rename', 'rmdir', 'stat', 'statvfs', 'sync', 'unlink']
['System Volume Information', 'test.txt', 'test1.py', 'data.dat', 'mm32sub.py', 'text.txt', 'subfile.py', 'i2coled.py', 'yhtriangle.txt', 'main.PY', 'gif.txt']
>>>
- 1
- 2
- 3
第一行显示了 os 中可以被使用的功能。第二行就是调用 os.listdir() 功能,显示 SD 卡根目录下所有的文件。 可以看到前面实验中建立的 text.txt , yhtriangle.txt 等文本文件。
使用 os.remove 命令,可以删除 SD 卡中的相关文件。比如使用
os.remove('text.txt')
- 1
便可以将 SD 卡中的 text.txt 文件删除。重新使用 os.listdir() 获得的结果如下。其中 text.txt 已经被删除了。
['System Volume Information', 'test.txt', 'test1.py', 'data.dat', 'mm32sub.py', 'subfile.py', 'i2coled.py', 'yhtriangle.txt', 'sub1', 'main.PY', 'gif.txt']
>>>
- 1
- 2
※ 总 结 ※
本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的关于文件读写操作以及 os 相关的软件用例部分内容。
一、存在问题
使用 f.read() 读取二进制文件,始终返回是 str 数据对象。 这就是的对于二进制文件读取数据出现了问题。 现在通过测试,仍然没有找到读写二进制文件的方法。
■ 相关文献链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/125546192
- 点赞
- 收藏
- 关注作者
评论(0)