MicroPython内核开发笔记书内软件用例 :文件系统实验

简 介: 本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的关于文件读写操作以及 os 相关的软件用例部分内容。

关键词 MicroPythonMM32F3277文件操作

书稿内容
目 录
Contents
基础实验
os相关命令
总 结
存在问题

软件用例:
这部分书稿内容包括有:

  1. 对于文件文件进行读写。
  2. 关于 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.")

代码执行后,信息显示:

2
3
4
5
6
7
8
9
10
11
Write text file.
>>> 

每执行一句 f.write, 该函数返回写入文件的字符数量。如果不希望程序在 f.write 输出写入字符数量,可以使用:

_ = f.write('*' * (i+1) + '\n')

下面程序是将 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.')

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'))

程序运行结果:

Text file contents:
*
**
***
****
*****
******
*******
********
*********
**********
>>> 

下面代码是将上面 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
>>> 

由于文件读取返回的类型都是 str ,所以还无法直接读取二进制文件。

二、 os相关命令

下面通过交互式操作测试 os 相关功能。 在交互窗口内输入以下命令。

import os

dir(os)
os.listdir('')

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']
>>> 

第一行显示了 os 中可以被使用的功能。第二行就是调用 os.listdir() 功能,显示 SD 卡根目录下所有的文件。 可以看到前面实验中建立的 text.txt , yhtriangle.txt 等文本文件。

使用 os.remove 命令,可以删除 SD 卡中的相关文件。比如使用

os.remove('text.txt')

便可以将 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']
>>> 

  结 ※


本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的关于文件读写操作以及 os 相关的软件用例部分内容。

一、存在问题

使用 f.read() 读取二进制文件,始终返回是 str 数据对象。 这就是的对于二进制文件读取数据出现了问题。 现在通过测试,仍然没有找到读写二进制文件的方法。


■ 相关文献链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/125546192