os
– 基本的“操作系统”服务¶
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: os
。
os
模块包含用于文件系统访问和挂载、终端重定向和复制以及 uname
和 urandom
函数的功能。
通用函数¶
- os.uname()¶
返回一个元组(可能是一个命名元组),其中包含关于底层机器和/或其操作系统的信息。元组按照以下顺序有五个字段,每个字段都是一个字符串:
sysname
– 底层系统的名称nodename
– 网络名称(可以与sysname
相同)release
– 底层系统的版本version
– MicroPython 版本和构建日期machine
– 底层硬件的标识符(例如板子、CPU)
- os.urandom(n)¶
返回一个包含 n 个随机字节的字节对象。尽可能使用硬件随机数生成器生成。
文件系统访问¶
- os.chdir(path)¶
更改当前目录。
- os.getcwd()¶
获取当前目录。
- os.ilistdir([dir])¶
此函数返回一个迭代器,然后产生与其正在列出的目录中的条目对应的元组。如果没有参数,则列出当前目录,否则列出由*dir*给定的目录。
元组的形式为 (name, type, inode[, size]):
name*是一个字符串(如果 *dir 是一个字节对象,则是字节)并且是条目的名称;
type 是一个整数,指定条目的类型,对于目录为0×4000,对于常规文件为0×8000;
inode 是文件的inode对应的整数,对于没有此概念的文件系统可能为0。
一些平台可能返回包含条目的*size*的4元组。对于文件条目,*size*是一个表示文件大小的整数,如果大小未知则为-1。对于目录条目,其含义目前未定义。
- os.listdir([dir])¶
如果没有参数,则列出当前目录。否则列出给定目录。
- os.mkdir(path)¶
创建一个新的目录。
- os.remove(path)¶
删除一个文件。
- os.rmdir(path)¶
删除一个目录。
- os.rename(old_path, new_path)¶
重命名一个文件。
- os.stat(path)¶
获取文件或目录的状态。
- os.statvfs(path)¶
获取系统文件的状态。
返回一个元组,其中包含以下顺序的文件系统信息:
f_bsize
– 文件系统块大小f_frsize
– 片段大小f_blocks
– 以f_frsize为单位的fs大小f_bfree
– 空闲块数f_bavail
– 非特权用户使用的空闲块数f_files
– inode 数量f_ffree
– 空闲 inode 数量f_favail
– 非特权用户的可用空闲 inode 数量f_flag
– 挂载标志f_namemax
– 最大文件名长度
与 inode 相关的参数:
f_files
、f_ffree
、f_avail
和f_flags
参数可能返回0
,因为它们可能在移植版本特定的实现中不可用。
- os.sync()¶
同步所有文件系统。
终端重定向和复制¶
- os.dupterm(stream_object, index=0, /)¶
复制或切换给定的 stream 类对象上的 MicroPython 终端(REPL)。stream_object 参数必须是本机流对象,或派生自
io.IOBase
并实现readinto()
和write()
方法。流应处于非阻塞模式,如果没有数据可用于读取,则readinto()
应返回None
。调用此函数后,所有终端输出都会在此流上重复,任何可用于流上的输入都会传递到终端输入。
index 参数应为非负整数,并指定设置的复制槽。给定移植版本可能实现多个槽(槽 0 总是可用),在这种情况下,终端输入和输出会复制到所有设置的槽上。
如果将
None
作为 stream_object 传递,则在给定的 index 槽上取消复制。函数返回给定槽中的以前的类似流对象。
文件系统挂载¶
以下函数和类已被移至 vfs
模块。它们仅在此模块中提供,以保持向后兼容性,并将在 MicroPython 2 版本中移除。
- os.umount(mount_point)¶
请参见
vfs.umount
。
- class os.VfsFat(block_dev)¶
请参见
vfs.VfsFat
。
- class os.VfsLfs1(block_dev, readsize=32, progsize=32, lookahead=32)¶
请参见
vfs.VfsLfs1
。
- class os.VfsLfs2(block_dev, readsize=32, progsize=32, lookahead=32, mtime=True)¶
请参见
vfs.VfsLfs2
。
- class os.VfsPosix(root=None)¶
请参见
vfs.VfsPosix
。