2016-04-26 23:55:06 +01:00
|
|
|
:mod:`uos` -- basic "operating system" services
|
2016-04-27 12:11:27 +01:00
|
|
|
===============================================
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2016-04-26 23:55:06 +01:00
|
|
|
.. module:: uos
|
2014-10-31 01:37:19 +00:00
|
|
|
:synopsis: basic "operating system" services
|
|
|
|
|
2016-04-03 18:32:02 +01:00
|
|
|
The ``os`` module contains functions for filesystem access and ``urandom``
|
|
|
|
function.
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2016-04-03 18:32:02 +01:00
|
|
|
Port specifics
|
|
|
|
--------------
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2016-04-03 18:32:02 +01:00
|
|
|
The filesystem has ``/`` as the root directory and the
|
2014-10-31 22:21:37 +00:00
|
|
|
available physical drives are accessible from here. They are currently:
|
|
|
|
|
|
|
|
``/flash`` -- the internal flash filesystem
|
|
|
|
|
|
|
|
``/sd`` -- the SD card (if it exists)
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2015-06-10 22:29:56 +01:00
|
|
|
.. only:: port_pyboard
|
|
|
|
|
|
|
|
On boot up, the current directory is ``/flash`` if no SD card is inserted,
|
|
|
|
otherwise it is ``/sd``.
|
|
|
|
|
|
|
|
.. only:: port_wipy
|
|
|
|
|
|
|
|
On boot up, the current directory is ``/flash``.
|
2014-10-31 01:37:19 +00:00
|
|
|
|
|
|
|
Functions
|
|
|
|
---------
|
|
|
|
|
|
|
|
.. function:: chdir(path)
|
|
|
|
|
|
|
|
Change current directory.
|
|
|
|
|
|
|
|
.. function:: getcwd()
|
|
|
|
|
|
|
|
Get the current directory.
|
|
|
|
|
2017-05-10 03:44:21 +01:00
|
|
|
.. function:: ilistdir([dir])
|
|
|
|
|
|
|
|
This function returns an iterator which then yields 3-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 3-tuples have the form `(name, type, inode)`:
|
|
|
|
|
|
|
|
- `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.
|
|
|
|
|
2014-10-31 01:37:19 +00:00
|
|
|
.. function:: listdir([dir])
|
|
|
|
|
|
|
|
With no argument, list the current directory. Otherwise list the given directory.
|
|
|
|
|
|
|
|
.. function:: mkdir(path)
|
|
|
|
|
|
|
|
Create a new directory.
|
|
|
|
|
|
|
|
.. function:: remove(path)
|
|
|
|
|
|
|
|
Remove a file.
|
|
|
|
|
|
|
|
.. function:: rmdir(path)
|
|
|
|
|
|
|
|
Remove a directory.
|
|
|
|
|
2015-05-11 01:30:56 +01:00
|
|
|
.. function:: rename(old_path, new_path)
|
|
|
|
|
|
|
|
Rename a file.
|
|
|
|
|
2014-10-31 01:37:19 +00:00
|
|
|
.. function:: stat(path)
|
|
|
|
|
|
|
|
Get the status of a file or directory.
|
|
|
|
|
2017-04-05 09:44:10 +01:00
|
|
|
.. function:: statvfs(path)
|
|
|
|
|
|
|
|
Get the status of a fileystem.
|
|
|
|
|
|
|
|
Returns a tuple with the filesystem information in the following order:
|
|
|
|
|
|
|
|
* ``f_bsize`` -- file system block size
|
|
|
|
* ``f_frsize`` -- fragment size
|
|
|
|
* ``f_blocks`` -- size of fs in f_frsize units
|
|
|
|
* ``f_bfree`` -- number of free blocks
|
|
|
|
* ``f_bavail`` -- number of free blocks for unpriviliged users
|
|
|
|
* ``f_files`` -- number of inodes
|
|
|
|
* ``f_ffree`` -- number of free inodes
|
|
|
|
* ``f_favail`` -- number of free inodes for unpriviliged users
|
|
|
|
* ``f_flag`` -- mount flags
|
|
|
|
* ``f_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.
|
2016-09-27 10:29:31 +01:00
|
|
|
|
2014-10-31 01:37:19 +00:00
|
|
|
.. function:: sync()
|
|
|
|
|
|
|
|
Sync all filesystems.
|
|
|
|
|
|
|
|
.. function:: urandom(n)
|
|
|
|
|
2017-04-16 07:22:47 +01:00
|
|
|
Return a bytes object with n random bytes. Whenever possible, it is
|
|
|
|
generated by the hardware random number generator.
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2015-06-10 22:29:56 +01:00
|
|
|
.. only:: port_wipy
|
|
|
|
|
2015-10-14 11:32:01 +01:00
|
|
|
.. function:: mount(block_device, mount_point, \*, readonly=False)
|
|
|
|
|
|
|
|
Mounts a block device (like an ``SD`` object) in the specified mount
|
|
|
|
point. Example::
|
|
|
|
|
|
|
|
os.mount(sd, '/sd')
|
|
|
|
|
|
|
|
.. function:: unmount(path)
|
|
|
|
|
2016-08-01 00:52:00 +01:00
|
|
|
Unmounts a previously mounted block device from the given path.
|
2015-10-14 11:32:01 +01:00
|
|
|
|
|
|
|
.. function:: mkfs(block_device or path)
|
|
|
|
|
|
|
|
Formats the specified path, must be either ``/flash`` or ``/sd``.
|
|
|
|
A block device can also be passed like an ``SD`` object before
|
|
|
|
being mounted.
|
|
|
|
|
|
|
|
.. function:: dupterm(stream_object)
|
|
|
|
|
|
|
|
Duplicate the terminal (the REPL) on the passed stream-like object.
|
|
|
|
The given object must at least implement the ``.read()`` and ``.write()`` methods.
|