uos
— 基本系统操作模块¶
该模块实现了相应CPython模块的子集,具体功能如下所述。更多信息请参阅原始CPython文档:os。
uos模块包含用于文件系统访问和挂载,终端重定向和复制以及uname和urandom等函数。
使用示例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 # coding=utf-8 >>> import uos >>> import binascii >>> dir(uos) ['__class__', '__name__', 'open', 'close', 'read', 'write', 'system', 'mount', 'remove', 'seek', 'sep', 'sync', 'urandom', 'stat', 'statvfs', 'unlink', 'chdir', 'getcwd', 'dupterm', 'umount', 'uname', 'tell', 'rewind', 'getpos', 'setpos', 'listdir', 'ilistdir', 'mkdir', 'rename', 'rmdir', 'errno', 'dupterm_notify', 'getenv', 'putenv', 'unsetenv', 'VfsPosix'] >>> >>> uos.uname() (sysname='AliOS Things', nodename='AliOS Things', release='1.15.0', version='v1.15 on 2021-08-02', machine='HaaS with HaaS1000') >>> uos.urandom(5) >>> a = binascii.hexlify(uos.urandom(4)) >>> a b'e9508139' >>> a[0:8] b'e9508139' >>> >>> c = binascii.hexlify(uos.urandom(8)) >>> c b'57165237db2f9a4d' >>> c[0:8] b'57165237' >>> c[9:16] b'b2f9a4d' >>> uos.getcwd() '/' >>> uos.chdir('/data/') >>> uos.getcwd() '/data/' >>> uos.listdir('/data') ['demo', 'font', 'jsamp', 'lib', 'pyamp', 'python-apps', 'temp', 'wifi_status'] >>> uos.mkdir('/data/uostest') >>> uos.listdir('/data') ['demo', 'font', 'jsamp', 'lib', 'pyamp', 'python-apps', 'temp', 'uostest', 'wifi_status'] >>> uos.rmdir('/data/uostest') >>> uos.listdir('/data') ['demo', 'font', 'jsamp', 'lib', 'pyamp', 'python-apps', 'temp', 'wifi_status'] >>> uos.rename('/data/jsamp', '/data/jsamp-rename') >>> uos.listdir('/data') ['demo', 'font', 'jsamp-rename', 'lib', 'pyamp', 'python-apps', 'temp', 'wifi_status'] >>> uos.stat('/data') (16895, 13312, 4294953904, 1, 0, 52272, 0, 872471203, 872476197, 740043440) >>> uos.statvfs('/data') (740043440, 0, 0, 0, 476629175, 872467120, 872471056, 872471056, 0, 872467120) >>>
函数接口¶
提供操作系统相关的功能函数 和 文件操作功能函数
-
uos.
uname
()[源代码]¶ 返回一个元组(可能是一个命名了的元组),其中包含有关底层机器和/或其操作系统的信息。
元组按以下顺序有五个字段,每个字段都是一个字符串:
sysname – 底层系统的名称
nodename – 节点名(/板子名称)(可以与sysname相同)
release – 底层系统的版本
version – MicroPython版本和构建日期
machine – 底层硬件的标识符(例如,板卡信息,CPU信息)
- 引发
OSError – ENOENT
-
uos.
urandom
(n)[源代码]¶ 返回一个字节(bytes)对象,该对象包含n个字节。使用该函数的时候建议n为4的整数倍,这样生成的字节组合起来就是一个32bit随机数,否则生成的随机数会被截取。
- 下面的示例示例展示了生成一个32bit的随机数:
>>> a = binascii.hexlify(uos.urandom(4)) >>> a b'e9508139' >>> a[0:8] b'e9508139'
- 下面的示例示例展示了生成两个32bit的随机数,可以按字节数取出相应的随机数:
>>> c = binascii.hexlify(uos.urandom(8)) >>> c b'57165237db2f9a4d' >>> c[0:8] b'57165237' >>> c[9:16] b'b2f9a4d'
- 参数
n(int) – 待生成的随机字节的数目
- 引发
OSError – ENOENT
-
uos.
ilistdir
(dir)[源代码]¶ 该函数返回一个迭代器,该迭代器将生成与它所列出目录中的条目相对应的3元组。无参数情况下,列出当前目录,否则列出由 dir 指定的目录。
3元组的形式包括 (名称、类型、索引节点) :
name 为一个字符串(若dir为一个字节对象,则名称为字节)且为条目的名称;
type 为一个指定条目类型的整数,其中目录为0x4000,常规文件为0x8000;
inode 为一个与文件的索引节点相对应的整数,而对于没有这种概念的文件系统来说,可能为0。
- 参数
dir(str) – 待列出待切换的目的路径
- 引发
OSError – ENOENT
-
uos.
statvfs
(path)[源代码]¶ 获取文件系统的状态。按照以下顺序返回一个具有文件系统信息的元组:
f_bsize – 文件系统块大小
f_frsize – 碎片大小
f_blocks – f_frsize单元中fs的大小
f_bfree – 空闲块的数量
f_bavail – 非特权用户的免费块数
f_files – 索引节点的数量
f_ffree – 空闲索引节点的数量
f_favail – 非特权用户的免费空闲索引节点的数量
f_flag – 挂载标志
f_namemax – 最大文件名长度
受 aos3.3 系统能力所限,目前 f_frsize f_flags 参数返回0。
-
uos.
open
(path, mode)[源代码]¶ 打开文件,具体使用方式参考Linux C下的fopen函数。
- 参数
path(str) – 待打开的文件路径及文件名;
mode(str) – 待打开的文件长度操作形态;
- 返回
若文件打开成功,返回值为文件流指针。若文件打开失败, 则返回Null。
- 引发
OSError – ENOENT
-
uos.
read
(buf, size, nmemb, stream)[源代码]¶ 从文件流读取数据,具体使用方式参考Linux C下的fread函数。
- 参数
buf(bytearray) – 数据空间,用来存放读取进来的数据;
size(int) – 待读取的每个数据项占据的字节数;
nmemb(int) – 待读取的数据项数目,读取的总字符数以参数size*nmemb来决定;
stream(nil) – 通过open函数获取到的已打开的文件指针;
- 返回
实际读取到的总字符数目。
- 引发
OSError – EINVAL
-
uos.
write
(buf, size, nmemb, stream)[源代码]¶ 从文件流写入数据,具体使用方式参考Linux C下的fwrite函数。
- 参数
buf(bytearray) – 数据空间,用来存放待写入的数据;
size(int) – 待写入的每个数据项占据的字节数;
nmemb(int) – 待写入的数据项数目,写入的总字符数以参数size*nmemb来决定;
stream(nil) – 通过open函数获取到的已打开的文件指针;
- 返回
实际写入到的总字符数目。
- 引发
OSError – EINVAL
-
uos.
close
(stream)[源代码]¶ 关闭文件,具体使用方式参考Linux C下的fclose函数。
- 参数
stream(nil) – 通过open函数获取到的已打开的文件指针;
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL
-
uos.
seek
(buf, size, nmemb, stream)[源代码]¶ 移动文件流的读写位置,具体使用方式参考Linux C下的fseek函数。
- 参数
stream(nil) – 通过open函数获取到的已打开的文件指针;
offset(int) – 相对 whence 的偏移量,以字节为单位;
whence(int) – 开始添加偏移 offset 的位置,它一般指定为: SEEK_SET, SEEK_CUR和SEEK_END;
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL
-
uos.
tell
(stream)[源代码]¶ 获取给定流stream的当前文件位置,具体使用方式参考Linux C下的ftell函数。
- 参数
stream(nil) – 通过open函数获取到的已打开的文件指针;
- 返回
若获取成功则返回位置标识符的当前值;若获取失败则返回-1L。
- 引发
OSError – EINVAL
-
uos.
rewind
(stream)[源代码]¶ 设置文件位置为给定流stream的文件的开头,具体使用方式参考Linux C下的rewind函数。
- 参数
stream(nil) – 通过open函数获取到的已打开的文件指针;
- 返回
空
- 引发
OSError – EINVAL