basic "operating system" services
os – basic “operating system” services
This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: os.
The os module contains functions for filesystem access and mounting,
terminal redirection and duplication, and the uname and urandom
functions.
General functions
os.uname
os.uname()Return a tuple (possibly a named tuple) containing information about the underlying machine and/or its operating system. The tuple has five fields in the following order, each of them being a string:
sysname– the name of the underlying systemnodename– the network name (can be the same assysname)release– the version of the underlying systemversion– the MicroPython version and build datemachine– an identifier for the underlying hardware (eg board, CPU)
os.urandom
os.urandom(n)Return a bytes object with n random bytes. Whenever possible, it is generated by the hardware random number generator.
Filesystem access
os.chdir
os.chdir(path)Change current directory.
os.getcwd
os.getcwd()Get the current directory.
os.ilistdir
os.ilistdir([dir])This function returns an iterator which then yields tuples corresponding to the entries in the directory that it is listing. With no argument it lists the current directory, otherwise it lists the directory given by dir.
The tuples have the form (name, type, inode[, size]):
- name is a string (or bytes if dir is a bytes object) and is the name of the entry;
- type is an integer that specifies the type of the entry, with 0x4000 for directories and 0x8000 for regular files;
- inode is an integer corresponding to the inode of the file, and may be 0 for filesystems that don’t have such a notion.
- Some platforms may return a 4-tuple that includes the entry’s size. For file entries, size is an integer representing the size of the file or -1 if unknown. Its meaning is currently undefined for directory entries.
os.listdir
os.listdir([dir])With no argument, list the current directory. Otherwise list the given directory.
os.mkdir
os.mkdir(path)Create a new directory.
os.remove
os.remove(path)Remove a file.
os.rmdir
os.rmdir(path)Remove a directory.
os.rename
os.rename(old_path, new_path)Rename a file.
os.stat
os.stat(path)Get the status of a file or directory.
os.statvfs
os.statvfs(path)Get the status of a filesystem.
Returns a tuple with the filesystem information in the following order:
f_bsize– file system block sizef_frsize– fragment sizef_blocks– size of fs in f_frsize unitsf_bfree– number of free blocksf_bavail– number of free blocks for unprivileged usersf_files– number of inodesf_ffree– number of free inodesf_favail– number of free inodes for unprivileged usersf_flag– mount flagsf_namemax– maximum filename length
Parameters related to inodes: f_files, f_ffree, f_avail
and the f_flags parameter may return 0 as they can be unavailable
in a port-specific implementation.
os.sync
os.sync()Sync all filesystems.
Terminal redirection and duplication
os.dupterm
os.dupterm(stream_object, index=0, /)Duplicate or switch the MicroPython terminal (the REPL) on the given stream-like
object. The stream_object argument must be a native stream object, or derive
from io.IOBase and implement the readinto() and
write() methods. The stream should be in non-blocking mode and
readinto() should return None if there is no data available for reading.
After calling this function all terminal output is repeated on this stream, and any input that is available on the stream is passed on to the terminal input.
The index parameter should be a non-negative integer and specifies which duplication slot is set. A given port may implement more than one slot (slot 0 will always be available) and in that case terminal input and output is duplicated on all the slots that are set.
If None is passed as the stream_object then duplication is cancelled on
the slot given by index.
The function returns the previous stream-like object in the given slot.
Filesystem mounting
The following functions and classes have been moved to the vfs module. They are provided in this module only for backwards compatibility and will be removed in version 2 of MicroPython.
os.mount
os.mount(fsobj, mount_point, *, readonly)See vfs.mount.
os.umount
os.umount(mount_point)See vfs.umount.
os.VfsFat
class os.VfsFat(block_dev)See vfs.VfsFat.
os.VfsLfs1
class os.VfsLfs1(block_dev, readsize=32, progsize=32, lookahead=32)See vfs.VfsLfs1.
os.VfsLfs2
class os.VfsLfs2(block_dev, readsize=32, progsize=32, lookahead=32, mtime=True)See vfs.VfsLfs2.
os.VfsPosix
class os.VfsPosix(root=None)See vfs.VfsPosix.
