このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

os -- 基本的な「オペレーティングシステム」サービス

このモジュールは、該当する CPython モジュールのサブセットを実装しています。 詳しくはオリジナルの CPython ドキュメンテーションを参照してください: os.

os モジュールには、ファイルシステムのアクセス、マウント、ターミナルのリダイレクトと複製、unameurandom のための関数があります。

一般関数

os.uname()

基盤のマシンやオペレーティングシステムに関する情報を含むタプル(おそらく名前付きタプル)を返します。タプルには次の5つのフィールドがあり、それぞれが文字列です。

  • sysname -- 基盤システムの名前

  • nodename -- ネットワーク名(sysname と同じこともあります)

  • release -- 基盤システムのバージョン

  • version -- MicroPython のバージョンとビルド日付

  • machine -- 基盤ハードウェアの識別子(ボード、CPUなど)

os.urandom(n)

n 個のランダムバイトを持つ bytes 型オブジェクトを返します。可能な限り、ハードウェア乱数生成器によって乱数を生成します。

ファイルシステムのアクセス

os.chdir(path)

カレントディレクトリを変更します。

os.getcwd()

カレントディレクトリのパスを返します。

os.ilistdir([dir])

この関数はイテレータを返します。イテレータが生成するのは、ディレクトリ内のエントリに対応するタプルです。引数なしの場合はカレントディレクトリを、それ以外の場合は dir で指定したディレクトリをリストします。

タプルの形式は (name, type, inode [, size]) です。

  • name は文字列(dir が bytes 型オブジェクトの場合は bytes 型オブジェクト)であり、エントリの名前です。

  • type はエントリのタイプを指定する整数で、ディレクトリの場合は 0x4000、通常のファイルの場合は 0x8000 です。

  • inode はファイルのiノードに対応する整数であり、そのような概念を持たないファイルシステムについては 0 になります。

  • size は、ファイルシステムの種類によっては含まれる整数値です。ファイル項目の場合、size はファイルサイズを表し、サイズが不明な場合は -1 になります。ディレクトリ項目に対しては、現時点では size の意味は未定義です。

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 -- iノード数

  • f_ffree -- フリーのiノードの数

  • f_favail -- 権限なしユーザの空きiノード数

  • f_flag -- マウントフラグ

  • f_namemax -- 最大ファイル名の長さ

iノードに関連するパラメータ 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 パラメータは負でない整数であり、設定されている複製を指定します。ポートは2つ以上のスロットを実装できます(スロット 0 は常に使用可能です)。その場合、端末の入出力は設定されているすべてのスロットに複製されます。

stream_objectNone を渡した場合、 index によって指定されたスロットで重複が取り消されます。

この関数は、指定したスロットの前のストリームライク風オブジェクトを返します。

os.dupterm_notify(obj_in, /)

os.dupterm() を介して以前に登録されたストリームライクなオブジェクトで入力が利用可能であることを MicroPython REPL に通知します。

この関数は、カスタムストリーム実装(UART、Bluetooth、その他のUSB以外のREPLストリームなど)によって呼び出され、入力の読み取り準備が完了したことを REPL に通知する必要があります。適切に使うことで、Ctrl+C (KeyboardInterrupt のトリガーに使用)などの特殊文字が REPL によって迅速に処理され、ユーザーコードで期待される割り込み動作が可能になります。

obj_in パラメータは os.dupterm_notify() では無視されますが、 UART.irq() などの割り込みハンドラから dupterm_notify を呼び出すために必要です。

例:

from machine import UART
import os
uart = UART(0)
os.dupterm(uart, 0)
uart.irq(os.dupterm_notify, machine.UART.IRQ_RX)

注釈

dupterm_notify() 関数が呼び出されない場合、カスタムストリームからの入力は次回の REPL ポーリングまで検出または処理されない可能性があり、KeyboardInterrupts やその他の制御信号が遅延する可能性があります。これは、自動通知が保証されない UART、Bluetooth、その他の非標準REPL接続において特に重要です。

ファイルシステムのマウント

次の関数やクラスは vfs モジュールに移動しました。このモジュールでは、後方互換性のために提供されており、MicroPython のバージョン2では削除されます。

os.mount(fsobj, mount_point, *, readonly)

vfs.mount を参照。

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 を参照。