|
我一直在micropython文档中寻找关于文件操作的函数,但是官方文档中根本没有。只是提到其路径:/flash和/sd,分别对应内置Flash ROM文件系统和外置TF卡槽。所以我想或许类似于标准Python3的实现。
micropython的库
micropython支持四种库: - micropython内置库
- 标准库
- 微型库
- pyboard库
但即使是标准库和微型库里面也没有提到最重要的os,sys模块。作者或许太忙了。我们来补上!请Ctrl+D进入REPL。
- PYB: sync filesystems
- PYB: soft reboot
- MicroPython v1.6-310-g1937953 on 2016-03-28; PYBv1.0 with STM32F405RG
- Type "help()" for more information.
- >>>import os, sys
- >>> dir(os)
- ['__name__', 'uname', 'chdir', 'getcwd', 'listdir', 'mkdir', 'remove', 'rename', 'rmdir', 'stat', 'statvfs', 'unlink', 'sync', 'sep', 'urandom', 'dupterm', 'mount', 'umount', 'mkfs']
- >>> dir(sys)
- ['__name__', 'path', 'argv', 'version', 'version_info', 'implementation', 'platform', 'byteorder', 'maxsize', 'exit', 'stdin', 'stdout', 'stderr', 'modules', 'print_exception']
- >>> os.getcwd()
- '/sd'
- >>> os.listdir('/flash')
- ['main.py', 'pybcdc.inf', 'README.txt', 'boot.py', 'demo.py', 'modem.py', 'demo2.py', 'sch_demo.py', 'SPI_demo.py']
- >>> os.listdir('/sd')
- ['HTSC','documents', '.LOST.DIR', 'log', 'bddownload']
- >>> fp = open('/flash/boot.py','r')
- >>> for line in fp:
- ... print(line)
- ...
- ...
- # boot.py -- run on boot-up
- # can run arbitrary Python, but best to keep it minimal
- import machine
- import pyb
- pyb.main('SPI_demo.py')
- #pyb.main('main.py') # main script to run after this one
- #pyb.usb_mode('CDC+MSC') # act as a serial and a storage device
- #pyb.usb_mode('CDC+HID') # act as a serial device and a mouse
- >>> fp.close()
- >>>
- >>> fp = open('/flash/test.txt','w+')
- >>> fp.write('hello ')
- 6
- >>> fp.write('world\r\n')
- 7
- >>> fp.write('allankliu')
- 9
- >>> fp.close()
- >>> fp = open('/flash/test.txt','r')
- >>> for line in fp:
- ... print(line)
- ...
- ...
- ...
- hello world
- allankliu
- >>> os.listdir('/flash')
- ['main.py', 'pybcdc.inf', 'README.txt', 'boot.py', 'demo.py', 'modem.py', 'demo2.py', 'sch_demo.py', 'test.txt', 'SPI_demo.py']
- >>> os.unlink('/flash/test.txt')
- >>> os.listdir('/flash')
- ['main.py', 'pybcdc.inf', 'README.txt', 'boot.py', 'demo.py', 'modem.py', 'demo2.py', 'sch_demo.py', 'SPI_demo.py']
复制代码
在Python2/3中,和文件、目录操作的库主要是os,os.path和shutil。从dir()来看,micropython只实现了os库和内置函数open()/close()/read()/read()等。也可以创建和删除文件unlink()。
在micropython的/sd和/flash文件系统中满足嵌入式系统的基本需求是没有问题的:可以从文件中读取配置信息(比如JSON或CSV),也可以向文件中存储数据信息满足数据采集和Log日志。
|
赞赏
-
1
查看全部赞赏
-
|