os -- 基本的な「オペレーティングシステム」サービス
このモジュールは、該当する CPython モジュールのサブセットを実装しています。
詳しくはオリジナルの CPython ドキュメンテーションを参照してください: os.
os モジュールには、ファイルシステムのアクセス、マウント、ターミナルのリダイレクトと複製、uname と urandom のための関数があります。
一般関数
- 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_object に
Noneを渡した場合、 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.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を参照。