15.1. os —その他のオペレーティングシステムインターフェイス—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/os
移動先:案内検索

15.1。 os —その他のオペレーティングシステムインターフェイス

このモジュールは、オペレーティングシステムに依存する機能を使用するポータブルな方法を提供します。 ファイルの読み取りまたは書き込みのみを行う場合は open()を、パスを操作する場合は os.path モジュールを、すべての行を読み取る場合はを参照してください。コマンドラインのすべてのファイルで、 fileinput モジュールを参照してください。 一時ファイルとディレクトリの作成については、 tempfile モジュールを参照してください。高レベルのファイルとディレクトリの処理については、 shutil モジュールを参照してください。

これらの機能の可用性に関する注意:

  • Pythonのすべての組み込みオペレーティングシステム依存モジュールの設計は、同じ機能が利用可能である限り、同じインターフェイスを使用するようになっています。 たとえば、関数os.stat(path)は、パスに関する統計情報を同じ形式で返します(これはたまたまPOSIXインターフェイスで発生したものです)。
  • 特定のオペレーティングシステムに固有の拡張機能も os モジュールから入手できますが、それらを使用することはもちろん移植性に対する脅威です。
  • 「可用性:Unix」の注記は、この関数がUnixシステムで一般的に見られることを意味します。 特定のオペレーティングシステムでの存在については何も主張しません。
  • 特に明記されていない限り、「可用性:Unix」と主張するすべての機能は、Unixコア上に構築されたMac OSXでサポートされています。

ノート

このモジュールのすべての関数は、ファイル名とパスに無効またはアクセスできない場合、または正しいタイプであるがオペレーティングシステムで受け入れられないその他の引数の場合に、OSErrorを発生させます。


exception os.error
組み込みのOSError例外のエイリアス。
os.name

インポートされたオペレーティングシステムに依存するモジュールの名前。 現在登録されている名前は、'posix''nt''os2''ce''java''riscos'です。

も参照してください

sys.platform の粒度はより細かくなります。 os.uname()は、システムに依存するバージョン情報を提供します。

platform モジュールは、システムのIDの詳細なチェックを提供します。

15.1.1。 プロセスパラメータ

これらの関数とデータ項目は情報を提供し、現在のプロセスとユーザーを操作します。

os.environ

文字列環境を表す mapping オブジェクト。 たとえば、environ['HOME']は(一部のプラットフォームでは)ホームディレクトリのパス名であり、Cのgetenv("HOME")と同等です。

このマッピングは、 os モジュールが最初にインポートされたとき、通常はsite.pyの処理の一部としてPythonの起動時にキャプチャされます。 この時間以降に行われた環境への変更は、os.environを直接変更することによって行われた変更を除いて、os.environには反映されません。

プラットフォームが putenv()関数をサポートしている場合、このマッピングを使用して、環境を変更したり、環境を照会したりできます。 putenv()は、マッピングが変更されると自動的に呼び出されます。

ノート

putenv()を直接呼び出しても、os.environは変更されないため、os.environを変更することをお勧めします。

ノート

FreeBSDやMacOS Xを含む一部のプラットフォームでは、environを設定するとメモリリークが発生する可能性があります。 putenv()のシステムドキュメントを参照してください。

putenv()が提供されていない場合、このマッピングの変更されたコピーが適切なプロセス作成関数に渡され、子プロセスが変更された環境を使用するようになります。

プラットフォームが unsetenv()関数をサポートしている場合は、このマッピングの項目を削除して、環境変数を設定解除できます。 unsetenv()は、アイテムがos.environから削除されたとき、およびpop()またはclear()メソッドのいずれかが呼び出されたときに自動的に呼び出されます。

バージョン2.6で変更: os.environ.clear()およびos.environ.pop()を呼び出すときに環境変数も設定解除します。

os.chdir(path)

os.fchdir(fd)
os.getcwd()

これらの機能については、ファイルとディレクトリで説明されています。
os.ctermid()

プロセスの制御端末に対応するファイル名を返します。

可用性:Unix。

os.getegid()

現在のプロセスの実効グループIDを返します。 これは、現在のプロセスで実行されているファイルの「setid」ビットに対応します。

可用性:Unix。

os.geteuid()

現在のプロセスの有効なユーザーIDを返します。

可用性:Unix。

os.getgid()

現在のプロセスの実際のグループIDを返します。

可用性:Unix。

os.getgroups()

現在のプロセスに関連付けられている補足グループIDのリストを返します。

可用性:Unix。

ノート

Mac OS Xでは、 getgroups()の動作は他のUnixプラットフォームとは多少異なります。 Pythonインタープリターが10.5以前のデプロイメントターゲットで構築されている場合、 getgroups()は現在のユーザープロセスに関連付けられている有効なグループIDのリストを返します。 このリストは、システム定義のエントリ数(通常は16)に制限されており、適切な特権がある場合は、 setgroups()を呼び出すことで変更できます。 10.5より大きいデプロイメントターゲットでビルドされた場合、 getgroups()は、プロセスの有効なユーザーIDに関連付けられたユーザーの現在のグループアクセスリストを返します。 グループアクセスリストは、プロセスの存続期間中に変更される可能性があり、 setgroups()の呼び出しの影響を受けず、その長さは16に制限されません。 展開ターゲット値MACOSX_DEPLOYMENT_TARGETは、 sysconfig.get_config_var()で取得できます。

os.initgroups(username, gid)

システムinitgroups()を呼び出して、指定されたユーザー名がメンバーであるすべてのグループと指定されたグループIDでグループアクセスリストを初期化します。

可用性:Unix。

バージョン2.7の新機能。

os.getlogin()

プロセスの制御端末にログインしているユーザーの名前を返します。 ほとんどの場合、環境変数 LOGNAMEを使用してユーザーが誰であるかを確認するか、pwd.getpwuid(os.getuid())[0]を使用してプロセスの実際のユーザーのログイン名を取得する方が便利です。 id。

可用性:Unix。

os.getpgid(pid)

プロセスID pid のプロセスのプロセスグループIDを返します。 pid が0の場合、現在のプロセスのプロセスグループIDが返されます。

可用性:Unix。

バージョン2.3の新機能。

os.getpgrp()

現在のプロセスグループのIDを返します。

可用性:Unix。

os.getpid()

現在のプロセスIDを返します。

可用性:Unix、Windows。

os.getppid()

親のプロセスIDを返します。

可用性:Unix。

os.getresuid()

現在のプロセスの実際の、効果的な、保存されたユーザーIDを示すタプル(ruid、euid、suid)を返します。

可用性:Unix。

バージョン2.7の新機能。

os.getresgid()

現在のプロセスの実際の、効果的な、保存されたグループIDを示すタプル(rgid、egid、sgid)を返します。

可用性:Unix。

バージョン2.7の新機能。

os.getuid()

現在のプロセスの実際のユーザーIDを返します。

可用性:Unix。

os.getenv(varname[, value])

環境変数 varname が存在する場合はその値を返し、存在しない場合は value を返します。 value のデフォルトはNoneです。

可用性:Unix、Windowsのほとんどのフレーバー。

os.putenv(varname, value)

varname という名前の環境変数を文字列 value に設定します。 このような環境の変更は、 os.system()popen()または fork()および execv()で開始されるサブプロセスに影響します。 。

可用性:Unix、Windowsのほとんどのフレーバー。

ノート

FreeBSDやMacOS Xを含む一部のプラットフォームでは、environを設定するとメモリリークが発生する可能性があります。 putenvについては、システムのドキュメントを参照してください。

putenv()がサポートされている場合、os.environ内のアイテムへの割り当ては、 putenv()への対応する呼び出しに自動的に変換されます。 ただし、 putenv()を呼び出してもos.environは更新されないため、実際にはos.environのアイテムに割り当てることをお勧めします。

os.setegid(egid)

現在のプロセスの実効グループIDを設定します。

可用性:Unix。

os.seteuid(euid)

現在のプロセスの有効なユーザーIDを設定します。

可用性:Unix。

os.setgid(gid)

現在のプロセスのグループIDを設定します。

可用性:Unix。

os.setgroups(groups)

現在のプロセスに関連付けられている補足グループIDのリストを groups に設定します。 groups はシーケンスである必要があり、各要素はグループを識別する整数である必要があります。 この操作は通常、スーパーユーザーのみが使用できます。

可用性:Unix。

バージョン2.2の新機能。

ノート

Mac OS Xでは、グループの長さは、システムで定義された有効なグループIDの最大数(通常は16)を超えてはなりません。 setgroups()を呼び出して同じグループリストセットを返さない場合については、 getgroups()のドキュメントを参照してください。

os.setpgrp()

実装されているバージョン(存在する場合)に応じて、システムコールsetpgrp()またはsetpgrp(0, 0)を呼び出します。 セマンティクスについては、Unixのマニュアルを参照してください。

可用性:Unix。

os.setpgid(pid, pgrp)

システムコールsetpgid()を呼び出して、ID pid のプロセスのプロセスグループIDをID pgrp のプロセスグループに設定します。 セマンティクスについては、Unixのマニュアルを参照してください。

可用性:Unix。

os.setregid(rgid, egid)

現在のプロセスの実際の有効なグループIDを設定します。

可用性:Unix。

os.setresgid(rgid, egid, sgid)

現在のプロセスの実際の、効果的な、保存されたグループIDを設定します。

可用性:Unix。

バージョン2.7の新機能。

os.setresuid(ruid, euid, suid)

現在のプロセスの実際の、効果的な、保存されたユーザーIDを設定します。

可用性:Unix。

バージョン2.7の新機能。

os.setreuid(ruid, euid)

現在のプロセスの実際の有効なユーザーIDを設定します。

可用性:Unix。

os.getsid(pid)

システムコールgetsid()を呼び出します。 セマンティクスについては、Unixのマニュアルを参照してください。

可用性:Unix。

バージョン2.4の新機能。

os.setsid()

システムコールsetsid()を呼び出します。 セマンティクスについては、Unixのマニュアルを参照してください。

可用性:Unix。

os.setuid(uid)

現在のプロセスのユーザーIDを設定します。

可用性:Unix。

os.strerror(code)

コードのエラーコードに対応するエラーメッセージを返します。 不明なエラー番号が与えられたときにstrerror()NULLを返すプラットフォームでは、ValueErrorが発生します。

可用性:Unix、Windows。

os.umask(mask)

現在の数値umaskを設定し、前のumaskを返します。

可用性:Unix、Windows。

os.uname()

現在のオペレーティングシステムを識別する情報を含む5タプルを返します。 タプルには、(sysname, nodename, release, version, machine)の5つの文字列が含まれています。 一部のシステムは、ノード名を8文字または先頭のコンポーネントに切り捨てます。 ホスト名を取得するためのより良い方法は、 socket.gethostname()またはsocket.gethostbyaddr(socket.gethostname())です。

可用性:Unixの最近のフレーバー。

os.unsetenv(varname)

varname という名前の環境変数の設定を解除(削除)します。 このような環境の変更は、 os.system()popen()または fork()および execv()で開始されるサブプロセスに影響します。 。

unsetenv()がサポートされている場合、os.environ内のアイテムの削除は、 unsetenv()への対応する呼び出しに自動的に変換されます。 ただし、 unsetenv()を呼び出してもos.environは更新されないため、実際にはos.environのアイテムを削除することをお勧めします。

可用性:Unix、Windowsのほとんどのフレーバー。


15.1.2。 ファイルオブジェクトの作成

これらの関数は、新しいファイルオブジェクトを作成します。 ( open()も参照してください。)

os.fdopen(fd[, mode[, bufsize]])

ファイル記述子 fd に接続されている開いているファイルオブジェクトを返します。 mode および bufsize 引数は、組み込みの open()関数に対応する引数と同じ意味を持ちます。 fdopen()が例外を発生させた場合、 fd はそのまま(閉じられていない)のままになります。

可用性:Unix、Windows。

バージョン2.3で変更:指定した場合、 mode 引数は、'r''w'、または [のいずれかの文字で始まる必要があります。 X144X]、それ以外の場合はValueErrorが発生します。

バージョン2.5で変更: Unixでは、 mode 引数が'a'で始まる場合、 O_APPEND フラグがファイル記述子に設定されます( fdopen()の実装は、ほとんどのプラットフォームですでに実行されています)。

os.popen(command[, mode[, bufsize]])

コマンドとの間のパイプを開きます。 戻り値はパイプに接続されたオープンファイルオブジェクトであり、モード'r'(デフォルト)または'w'のどちらであるかに応じて読み取りまたは書き込みが可能です。 bufsize 引数は、組み込みの open()関数に対応する引数と同じ意味を持ちます。 コマンドの終了ステータス( wait()に指定された形式でエンコードされている)は、ファイルオブジェクトの close()メソッドの戻り値として使用できます。終了ステータスがゼロ(エラーなしの終了)の場合、Noneが返されます。

可用性:Unix、Windows。

バージョン2.6以降非推奨:この関数は廃止されました。 サブプロセスモジュールを使用します。 特に古い関数をサブプロセスモジュールセクションに置き換えるを確認してください。

バージョン2.0で変更:この関数は、以前のバージョンのPythonのWindowsでは信頼性が低く機能していました。 これは、Windowsで提供されているライブラリの_popen()関数を使用したためです。 新しいバージョンのPythonは、Windowsライブラリの壊れた実装を使用しません。

os.tmpfile()

更新モード(w+b)で開いた新しいファイルオブジェクトを返します。 ファイルにはディレクトリエントリが関連付けられておらず、ファイルのファイル記述子がなくなると自動的に削除されます。

可用性:Unix、Windows。

サブプロセスを作成するためのわずかに異なる方法を提供するいくつかの異なるpopen*()関数があります。

バージョン2.6以降非推奨: popen*()機能はすべて廃止されました。 サブプロセスモジュールを使用します。


popen*()バリアントごとに、 bufsize が指定されている場合、I / Oパイプのバッファーサイズを指定します。 mode が指定されている場合は、文字列'b'または't'である必要があります。 Windowsでは、これはファイルオブジェクトをバイナリモードで開くかテキストモードで開くかを決定するために必要です。 モードのデフォルト値は't'です。

また、これらのバリアントのそれぞれについて、Unixでは、 cmd がシーケンスである可能性があります。その場合、引数はシェルの介入なしにプログラムに直接渡されます( os.spawnv()[X189Xのように) ])。 cmd が文字列の場合、シェルに渡されます( os.system()と同様)。

これらのメソッドでは、子プロセスから終了ステータスを取得することはできません。 入力ストリームと出力ストリームを制御し、リターンコードを取得する唯一の方法は、サブプロセスモジュールを使用することです。 これらはUnixでのみ利用可能です。

これらの関数の使用に関連して発生する可能性のあるデッドロック状態の説明については、フロー制御の問題を参照してください。

os.popen2(cmd[, mode[, bufsize]])

cmd をサブプロセスとして実行し、ファイルオブジェクト(child_stdin, child_stdout)を返します。

バージョン2.6以降非推奨:この関数は廃止されました。 サブプロセスモジュールを使用します。 特に古い関数をサブプロセスモジュールセクションに置き換えるを確認してください。

可用性:Unix、Windows。

バージョン2.0の新機能。

os.popen3(cmd[, mode[, bufsize]])

cmd をサブプロセスとして実行し、ファイルオブジェクト(child_stdin, child_stdout, child_stderr)を返します。

バージョン2.6以降非推奨:この関数は廃止されました。 サブプロセスモジュールを使用します。 特に古い関数をサブプロセスモジュールセクションに置き換えるを確認してください。

可用性:Unix、Windows。

バージョン2.0の新機能。

os.popen4(cmd[, mode[, bufsize]])

cmd をサブプロセスとして実行し、ファイルオブジェクト(child_stdin, child_stdout_and_stderr)を返します。

バージョン2.6以降非推奨:この関数は廃止されました。 サブプロセスモジュールを使用します。 特に古い関数をサブプロセスモジュールセクションに置き換えるを確認してください。

可用性:Unix、Windows。

バージョン2.0の新機能。

child_stdin, child_stdout, and child_stderrは子プロセスの観点から名前が付けられているため、 child_stdin が子の標準入力であることに注意してください。)

この機能は、同じ名前の関数を使用する popen2 モジュールでも使用できますが、これらの関数の戻り値の順序は異なります。


15.1.3。 ファイル記述子の操作

これらの関数は、ファイル記述子を使用して参照されるI / Oストリームで動作します。

ファイル記述子は、現在のプロセスによって開かれたファイルに対応する小さな整数です。 たとえば、標準入力は通常ファイル記述子0、標準出力は1、標準エラーは2です。 プロセスによって開かれた他のファイルには、3、4、5などが割り当てられます。 「ファイル記述子」という名前は少し誤解を招きます。 Unixプラットフォームでは、ソケットとパイプもファイル記述子によって参照されます。

fileno()メソッドを使用して、必要に応じてファイルオブジェクトに関連付けられたファイル記述子を取得できます。 ファイル記述子を直接使用すると、データの内部バッファリングなどの側面を無視して、ファイルオブジェクトメソッドがバイパスされることに注意してください。

os.close(fd)

ファイル記述子 fd を閉じます。

可用性:Unix、Windows。

ノート

この関数は低レベルのI / Oを対象としており、 os.open()または pipe()によって返されるファイル記述子に適用する必要があります。 組み込み関数 open()または popen()または fdopen()によって返される「ファイルオブジェクト」を閉じるには、そのを使用します。 close()メソッド。

os.closerange(fd_low, fd_high)

エラーを無視して、 fd_low (包括的)から fd_high (排他的)までのすべてのファイル記述子を閉じます。 に相当:

for fd in xrange(fd_low, fd_high):
    try:
        os.close(fd)
    except OSError:
        pass

可用性:Unix、Windows。

バージョン2.6の新機能。

os.dup(fd)

ファイル記述子 fd の複製を返します。

可用性:Unix、Windows。

os.dup2(fd, fd2)

ファイル記述子 fdfd2 に複製し、必要に応じて後者を最初に閉じます。

可用性:Unix、Windows。

os.fchmod(fd, mode)

fd で指定されたファイルのモードを数値の mode に変更します。 mode の可能な値については、 chmod()のドキュメントを参照してください。

可用性:Unix。

バージョン2.6の新機能。

os.fchown(fd, uid, gid)

fd で指定されたファイルの所有者とグループIDを数値の uidgid に変更します。 IDの1つを変更しないままにするには、-1に設定します。

可用性:Unix。

バージョン2.6の新機能。

os.fdatasync(fd)

ファイル記述子 fd を含むファイルをディスクに強制的に書き込みます。 メタデータの更新を強制しません。

可用性:Unix。

ノート

この機能はMacOSでは利用できません。

os.fpathconf(fd, name)

開いているファイルに関連するシステム構成情報を返します。 name は、取得する構成値を指定します。 定義されたシステム値の名前である文字列である可能性があります。 これらの名前は、多くの標準(POSIX.1、Unix 95、Unix 98など)で指定されています。 一部のプラットフォームでは、追加の名前も定義されています。 ホストオペレーティングシステムに認識されている名前は、pathconf_namesディクショナリに記載されています。 そのマッピングに含まれていない構成変数の場合、 name の整数の受け渡しも受け入れられます。

name が文字列で不明な場合、ValueErrorが発生します。 name の特定の値がホストシステムでサポートされていない場合、pathconf_namesに含まれていても、OSErrorは errno.EINVAL [で発生します。エラー番号はX156X]。

可用性:Unix。

os.fstat(fd)

stat()のように、ファイル記述子 fd のステータスを返します。

可用性:Unix、Windows。

os.fstatvfs(fd)

statvfs()のように、ファイル記述子 fd に関連付けられたファイルを含むファイルシステムに関する情報を返します。

可用性:Unix。

os.fsync(fd)

ファイル記述子 fd を含むファイルをディスクに強制的に書き込みます。 Unixでは、これはネイティブのfsync()関数を呼び出します。 Windowsでは、MS _commit()機能。

Pythonファイルオブジェクト f から始める場合は、最初にf.flush()を実行し、次にos.fsync(f.fileno())を実行して、 f [に関連付けられているすべての内部バッファーを確認します。 X157X]がディスクに書き込まれます。

可用性:2.2.3以降のUnixおよびWindows。

os.ftruncate(fd, length)

ファイル記述子 fd に対応するファイルを切り捨てて、サイズが最大長さバイトになるようにします。

可用性:Unix。

os.isatty(fd)
ファイル記述子 fd が開いていて、tty(-like)デバイスに接続されている場合は、Trueを返します。それ以外の場合は、Falseを返します。
os.lseek(fd, pos, how)

ファイル記述子 fd の現在の位置を how によって変更された位置 pos に設定します: SEEK_SET または0を設定しますファイルの先頭を基準にした位置。 SEEK_CUR または1を使用して、現在の位置を基準にして設定します。 SEEK_END または2を使用して、ファイルの終わりを基準にして設定します。 新しいカーソル位置を最初からバイト単位で返します。

可用性:Unix、Windows。

os.SEEK_SET
os.SEEK_CUR
os.SEEK_END

lseek()関数のパラメーター。 それらの値は、それぞれ0、1、および2です。

可用性:Windows、Unix。

バージョン2.5の新機能。

os.open(file, flags[, mode])

ファイルファイルを開き、フラグに従ってさまざまなフラグを設定し、場合によってはモードに従ってそのモードを設定します。 デフォルトのモード0777(8進数)であり、現在のumask値が最初にマスクされます。 新しく開いたファイルのファイル記述子を返します。

フラグとモードの値の説明については、Cランタイムのドキュメントを参照してください。 フラグ定数( O_RDONLYO_WRONLY など)もこのモジュールで定義されています( open()フラグ定数を参照)。 特に、Windowsでは、バイナリモードでファイルを開くために O_BINARY を追加する必要があります。

可用性:Unix、Windows。

ノート

この機能は、低レベルのI / Oを対象としています。 通常の使用法では、組み込み関数 open()を使用します。この関数は、 read()および write()メソッド(およびさらに多く)。 ファイル記述子を「ファイルオブジェクト」でラップするには、 fdopen()を使用します。

os.openpty()

新しい疑似端末ペアを開きます。 ptyとttyのファイル記述子のペア(master, slave)をそれぞれ返します。 (少し)移植性の高いアプローチの場合は、 pty モジュールを使用します。

可用性:Unixのいくつかのフレーバー。

os.pipe()

パイプを作成します。 それぞれ読み取りと書き込みに使用できるファイル記述子のペア(r, w)を返します。

可用性:Unix、Windows。

os.read(fd, n)

ファイル記述子 fd から最大 n バイトを読み取ります。 読み取ったバイトを含む文字列を返します。 fd によって参照されるファイルの終わりに達した場合、空の文字列が返されます。

可用性:Unix、Windows。

ノート

この関数は低レベルのI / Oを対象としており、 os.open()または pipe()によって返されるファイル記述子に適用する必要があります。 組み込み関数 open()popen()fdopen()、または sysによって返される「ファイルオブジェクト」を読み取るには.stdin 、その read()または readline()メソッドを使用します。

os.tcgetpgrp(fd)

fdos.open()によって返されるオープンファイル記述子)で指定された端末に関連付けられたプロセスグループを返します。

可用性:Unix。

os.tcsetpgrp(fd, pg)

fdos.open()によって返されるオープンファイル記述子)で指定された端末に関連付けられたプロセスグループを pg に設定します。

可用性:Unix。

os.ttyname(fd)

ファイル記述子 fd に関連付けられた端末デバイスを指定する文字列を返します。 fd が端末デバイスに関連付けられていない場合、例外が発生します。

可用性:Unix。

os.write(fd, str)

文字列 str をファイル記述子 fd に書き込みます。 実際に書き込まれたバイト数を返します。

可用性:Unix、Windows。

ノート

この関数は低レベルのI / Oを対象としており、 os.open()または pipe()によって返されるファイル記述子に適用する必要があります。 組み込み関数 open()popen()fdopen()、または sysによって返される「ファイルオブジェクト」を書き込むには.stdout または sys.stderr の場合は、 write()メソッドを使用します。

15.1.3.1。 open()フラグ定数

次の定数は、 open()関数の flags パラメーターのオプションです。 これらは、ビットごとのOR演算子|を使用して組み合わせることができます。 それらのいくつかは、すべてのプラットフォームで利用できるわけではありません。 それらの可用性と使用法の説明については、Unixの open(2)マニュアルページまたはWindowsの MSDN を参照してください。

os.O_RDONLY

os.O_WRONLY
os.O_RDWR
os.O_APPEND
os.O_CREAT
os.O_EXCL
os.O_TRUNC

上記の定数は、UnixおよびWindowsで使用できます。
os.O_DSYNC

os.O_RSYNC
os.O_SYNC
os.O_NDELAY
os.O_NONBLOCK
os.O_NOCTTY

上記の定数はUnixでのみ使用できます。
os.O_BINARY

os.O_NOINHERIT
os.O_SHORT_LIVED
os.O_TEMPORARY
os.O_RANDOM
os.O_SEQUENTIAL
os.O_TEXT

上記の定数はWindowsでのみ使用できます。
os.O_ASYNC

os.O_DIRECT
os.O_DIRECTORY
os.O_NOFOLLOW
os.O_NOATIME
os.O_SHLOCK
os.O_EXLOCK

上記の定数は拡張機能であり、Cライブラリで定義されていない場合は存在しません。


15.1.4。 ファイルとディレクトリ

os.access(path, mode)

実際のuid / gidを使用して、パスへのアクセスをテストします。 ほとんどの操作は有効なuid / gidを使用するため、このルーチンをsuid / sgid環境で使用して、呼び出し元のユーザーが path への指定されたアクセス権を持っているかどうかをテストできます。 モードは、パスの存在をテストするために F_OK である必要があります。または、 R_OK 、[ X141X] W_OK 、および X_OK を使用して、アクセス許可をテストします。 アクセスが許可されている場合は True を返し、許可されていない場合は False を返します。 詳細については、Unixのマニュアルページ access(2)を参照してください。

可用性:Unix、Windows。

ノート

access()を使用して、ユーザーが次のことを許可されているかどうかを確認します。 open()を使用して実際にファイルを開く前にファイルを開くと、セキュリティホールが作成されます。これは、ユーザーがファイルをチェックしてから開くまでの短い時間間隔を利用してファイルを操作する可能性があるためです。 EAFP テクニックを使用することをお勧めします。 例えば:

if os.access("myfile", os.R_OK):
    with open("myfile") as fp:
        return fp.read()
return "some default data"

次のように書く方が良いです:

try:
    fp = open("myfile")
except IOError as e:
    if e.errno == errno.EACCES:
        return "some default data"
    # Not a permission error.
    raise
else:
    with fp:
        return fp.read()

ノート

access()が成功することを示している場合でも、I / O操作が失敗する場合があります。特に、通常のPOSIXパーミッションビットモデルを超えるパーミッションセマンティクスを持つネットワークファイルシステムでの操作の場合はそうです。

os.F_OK
access()mode パラメーターとして渡して、 path の存在をテストする値。
os.R_OK
パスの可読性をテストするために access()mode パラメーターに含める値。
os.W_OK
パスの書き込み可能性をテストするために access()mode パラメーターに含める値。
os.X_OK
access()mode パラメータに含めて、 path を実行できるかどうかを判断する値。
os.chdir(path)

現在の作業ディレクトリをパスに変更します。

可用性:Unix、Windows。

os.fchdir(fd)

現在の作業ディレクトリを、ファイル記述子 fd で表されるディレクトリに変更します。 記述子は、開いているファイルではなく、開いているディレクトリを参照する必要があります。

可用性:Unix。

バージョン2.3の新機能。

os.getcwd()

現在の作業ディレクトリを表す文字列を返します。

可用性:Unix、Windows。

os.getcwdu()

現在の作業ディレクトリを表すUnicodeオブジェクトを返します。

可用性:Unix、Windows。

バージョン2.3の新機能。

os.chflags(path, flags)

パスのフラグを数値のフラグに設定します。 flags は、( stat モジュールで定義されているように)次の値の組み合わせ(ビット単位のOR)を取ることができます。

可用性:Unix。

バージョン2.6の新機能。

os.chroot(path)

現在のプロセスのルートディレクトリをパスに変更します。 可用性:Unix。

バージョン2.2の新機能。

os.chmod(path, mode)

パスのモードを数値モードに変更します。 mode は、次のいずれかの値( stat モジュールで定義)またはそれらのビット単位のOR演算の組み合わせをとることができます。

可用性:Unix、Windows。

ノート

Windowsは chmod()をサポートしていますが、ファイルの読み取り専用フラグを設定できるのは(stat.S_IWRITEおよびstat.S_IREAD定数または対応する整数値を介して)のみです。 他のすべてのビットは無視されます。

os.chown(path, uid, gid)

パスの所有者とグループIDを数値の uidgid に変更します。 IDの1つを変更しないままにするには、-1に設定します。

可用性:Unix。

os.lchflags(path, flags)

path のフラグを chflags()のように数値の flags に設定しますが、シンボリックリンクには従わないでください。

可用性:Unix。

バージョン2.6の新機能。

os.lchmod(path, mode)

パスのモードを数値モードに変更します。 パスがシンボリックリンクの場合、これはターゲットではなくシンボリックリンクに影響します。 mode の可能な値については、 chmod()のドキュメントを参照してください。

可用性:Unix。

バージョン2.6の新機能。

os.lchown(path, uid, gid)

パスの所有者とグループIDを数値の uidgid に変更します。 この関数はシンボリックリンクをたどりません。

可用性:Unix。

バージョン2.3の新機能。

os.link(source, link_name)

link_name という名前のソースを指すハードリンクを作成します。

可用性:Unix。

os.listdir(path)

path で指定されたディレクトリ内のエントリの名前を含むリストを返します。 リストは任意の順序です。 ディレクトリに存在する場合でも、特別なエントリ'.'および'..'は含まれません。

可用性:Unix、Windows。

バージョン2.3で変更: Windows NT / 2k / XPおよびUnixで、 path がUnicodeオブジェクトの場合、結果はUnicodeオブジェクトのリストになります。 デコードできないファイル名は、引き続き文字列オブジェクトとして返されます。

os.lstat(path)
指定されたパスでlstat()システムコールと同等の処理を実行します。 stat()に似ていますが、シンボリックリンクをたどりません。 シンボリックリンクをサポートしないプラットフォームでは、これは stat()のエイリアスです。
os.mkfifo(path[, mode])

数値モードモードパスという名前のFIFO(名前付きパイプ)を作成します。 デフォルトのモード0666(8進数)です。 現在のumask値は、最初にモードからマスクアウトされます。

可用性:Unix。

FIFOは、通常のファイルのようにアクセスできるパイプです。 FIFOは、削除されるまで存在します(たとえば、 os.unlink()を使用)。 一般に、FIFOは、「クライアント」タイプと「サーバー」タイプのプロセス間のランデブーとして使用されます。サーバーは読み取り用にFIFOを開き、クライアントは書き込み用にFIFOを開きます。 mkfifo()はFIFOを開かないことに注意してください—ランデブーポイントを作成するだけです。

os.mknod(filename[, mode=0600[, device=0]])

filename という名前のファイルシステムノード(ファイル、デバイス特殊ファイル、または名前付きパイプ)を作成します。 mode は、使用するアクセス許可と作成するノードのタイプの両方を指定し、stat.S_IFREGstat.S_IFCHR、 [X154Xのいずれかと組み合わせます(ビットごとのOR) ]、およびstat.S_IFIFO(これらの定数は stat で使用できます)。 stat.S_IFCHRおよびstat.S_IFBLKの場合、 device は新しく作成されたデバイス特殊ファイルを定義します(おそらく os.makedev()を使用)。それ以外の場合は無視されます。

バージョン2.3の新機能。

os.major(device)

未加工のデバイス番号からデバイスのメジャー番号を抽出します(通常、statst_devまたはst_rdevフィールド)。

バージョン2.3の新機能。

os.minor(device)

未加工のデバイス番号からデバイスのマイナー番号を抽出します(通常、statst_devまたはst_rdevフィールド)。

バージョン2.3の新機能。

os.makedev(major, minor)

メジャーデバイス番号とマイナーデバイス番号から生のデバイス番号を作成します。

バージョン2.3の新機能。

os.mkdir(path[, mode])

数値モードモードパスという名前のディレクトリを作成します。 デフォルトのモード0777(8進数)です。 ディレクトリがすでに存在する場合は、OSErrorが発生します。

一部のシステムでは、モードは無視されます。 これが使用される場合、現在のumask値が最初にマスクされます。 最後の9以外のビット(つまり モード)の8進表現の最後の3桁が設定され、その意味はプラットフォームによって異なります。 一部のプラットフォームでは、それらは無視されるため、 chmod()を明示的に呼び出して設定する必要があります。

一時ディレクトリを作成することもできます。 tempfile モジュールの tempfile.mkdtemp()関数を参照してください。

可用性:Unix、Windows。

os.makedirs(path[, mode])

再帰的なディレクトリ作成機能。 mkdir()と同様ですが、リーフディレクトリを含めるために必要なすべての中間レベルのディレクトリを作成します。 リーフディレクトリがすでに存在するか、作成できない場合、エラー例外が発生します。 デフォルトのモード0777(8進数)です。

mode パラメーターは mkdir()に渡されます。 解釈方法については、 mkdir()の説明を参照してください。

ノート

作成するパス要素に os.pardir が含まれていると、 makedirs()が混乱します。

バージョン1.5.2の新機能。

バージョン2.3で変更:この関数はUNCパスを正しく処理するようになりました。

os.pathconf(path, name)

名前付きファイルに関連するシステム構成情報を返します。 name は、取得する構成値を指定します。 定義されたシステム値の名前である文字列である可能性があります。 これらの名前は、多くの標準(POSIX.1、Unix 95、Unix 98など)で指定されています。 一部のプラットフォームでは、追加の名前も定義されています。 ホストオペレーティングシステムに認識されている名前は、pathconf_namesディクショナリに記載されています。 そのマッピングに含まれていない構成変数の場合、 name の整数の受け渡しも受け入れられます。

name が文字列で不明な場合、ValueErrorが発生します。 name の特定の値がホストシステムでサポートされていない場合、pathconf_namesに含まれていても、OSErrorは errno.EINVAL [で発生します。エラー番号はX156X]。

可用性:Unix。

os.pathconf_names
pathconf()および fpathconf()によって受け入れられるディクショナリマッピング名を、ホストオペレーティングシステムによってそれらの名前に定義された整数値にマッピングします。 これは、システムに認識されている名前のセットを判別するために使用できます。 可用性:Unix。
os.readlink(path)

シンボリックリンクが指すパスを表す文字列を返します。 結果は、絶対パス名または相対パス名のいずれかになります。 相対パスの場合は、os.path.join(os.path.dirname(path), result)を使用して絶対パス名に変換できます。

バージョン2.6で変更: パスがUnicodeオブジェクトの場合、結果もUnicodeオブジェクトになります。

可用性:Unix。

os.remove(path)

ファイルパスを削除(削除)します。 path がディレクトリの場合、OSErrorが発生します。 ディレクトリを削除するには、以下の rmdir()を参照してください。 これは、以下に記載されている unlink()関数と同じです。 Windowsでは、使用中のファイルを削除しようとすると、例外が発生します。 Unixでは、ディレクトリエントリは削除されますが、ファイルに割り当てられたストレージは、元のファイルが使用されなくなるまで使用できません。

可用性:Unix、Windows。

os.removedirs(path)

ディレクトリを再帰的に削除します。 rmdir()と同様に機能しますが、リーフディレクトリが正常に削除された場合、 removedirs()は、エラーが発生するまで path に記載されているすべての親ディレクトリを連続して削除しようとします。が発生します(通常、親ディレクトリが空ではないことを意味するため、無視されます)。 たとえば、os.removedirs('foo/bar/baz')は、最初にディレクトリ'foo/bar/baz'を削除し、次に'foo/bar''foo'が空の場合はそれらを削除します。 リーフディレクトリを正常に削除できなかった場合は、OSErrorを発生させます。

バージョン1.5.2の新機能。

os.rename(src, dst)

ファイルまたはディレクトリの名前を src から dst に変更します。 dst がディレクトリの場合、OSErrorが発生します。 Unixでは、 dst が存在し、ファイルである場合、ユーザーに権限があれば、サイレントに置き換えられます。 srcdst が異なるファイルシステム上にある場合、一部のUnixフレーバーで操作が失敗することがあります。 成功した場合、名前の変更は不可分操作になります(これはPOSIX要件です)。 Windowsでは、 dst がすでに存在する場合、ファイルであってもOSErrorが発生します。 dst が既存のファイルに名前を付ける場合、アトミックな名前変更を実装する方法がない可能性があります。

可用性:Unix、Windows。

os.renames(old, new)

再帰的なディレクトリまたはファイルの名前変更機能。 rename()と同様に機能しますが、新しいパス名を適切にするために必要な中間ディレクトリの作成が最初に試行される点が異なります。 名前の変更後、古い名前の右端のパスセグメントに対応するディレクトリは、 removedirs()を使用して削除されます。

バージョン1.5.2の新機能。

ノート

リーフディレクトリまたはファイルを削除するために必要な権限がない場合、この関数は新しいディレクトリ構造で失敗する可能性があります。

os.rmdir(path)

ディレクトリパスを削除(削除)します。 ディレクトリが空の場合にのみ機能します。それ以外の場合は、OSErrorが発生します。 ディレクトリツリー全体を削除するには、 shutil.rmtree()を使用できます。

可用性:Unix、Windows。

os.stat(path)

指定されたパスでstat()システムコールと同等の処理を実行します。 (この関数はシンボリックリンクに従います。シンボリックリンクを統計するには、 lstat()を使用します。)

戻り値は、属性がstat構造のメンバーに対応するオブジェクトです。

  • st_mode-保護ビット、

  • st_ino -iノード番号、

  • st_dev-デバイス、

  • st_nlink-ハードリンクの数、

  • st_uid-所有者のユーザーID、

  • st_gid-所有者のグループID、

  • st_size-ファイルのサイズ(バイト単位)、

  • st_atime-最新のアクセス時刻、

  • st_mtime-最新のコンテンツ変更の時刻、

  • st_ctime-プラットフォームに依存します。 Unixでの最新のメタデータ変更時、またはWindowsでの作成時)

バージョン2.3で変更: stat_float_times()Trueを返す場合、時間値は浮動小数点数であり、秒を測定します。 システムがそれをサポートしている場合は、1秒の端数が報告されることがあります。 詳細については、 stat_float_times()を参照してください。

一部のUnixシステム(Linuxなど)では、次の属性も使用できる場合があります。

  • st_blocks-ファイルに割り当てられた512バイトのブロックの数

  • st_blksize-効率的なファイルシステムI / Oのためのファイルシステムブロックサイズ

  • st_rdev -iノードデバイスの場合のデバイスのタイプ

  • st_flags-ファイルのユーザー定義フラグ

他のUnixシステム(FreeBSDなど)では、次の属性を使用できる場合があります(ただし、rootがそれらを使用しようとした場合にのみ入力できます)。

  • st_gen-ファイル生成番号

  • st_birthtime-ファイル作成時

RISCOSシステムでは、次の属性も使用できます。

  • st_ftype(ファイルタイプ)

  • st_attrs(属性)

  • st_obtype(オブジェクトタイプ)。

ノート

st_atimest_mtime、およびst_ctime属性の正確な意味と解像度は、オペレーティングシステムとファイルシステムによって異なります。 たとえば、FATまたはFAT32ファイルシステムを使用するWindowsシステムでは、st_mtimeの解像度は2秒で、st_atimeの解像度は1日のみです。 詳細については、オペレーティングシステムのドキュメントを参照してください。

下位互換性のために、 stat()の戻り値は、stat構造体の最も重要な(そして移植可能な)メンバーを順番に与える少なくとも10個の整数のタプルとしてもアクセスできます。 st_modest_inost_devst_nlinkst_uidst_gidst_size、[ X285X] 、st_mtimest_ctime。 一部の実装では、最後にさらに項目が追加される場合があります。

標準モジュール stat は、stat構造から情報を抽出するのに役立つ関数と定数を定義します。 (Windowsでは、一部の項目はダミー値で埋められます。)

例:

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511, 769, 1, 1032, 100, 926, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926

可用性:Unix、Windows。

バージョン2.2で変更:返されたオブジェクトの属性として値へのアクセスを追加しました。

バージョン2.5で変更: st_genおよびst_birthtimeを追加。

os.stat_float_times([newvalue])

stat_resultがタイムスタンプをfloatオブジェクトとして表すかどうかを判別します。 newvalueTrueの場合、 stat()への今後の呼び出しはfloatを返し、Falseの場合、将来の呼び出しはintを返します。 newvalue を省略した場合は、現在の設定を返します。

古いPythonバージョンとの互換性のために、タプルとしてstat_resultにアクセスすると、常に整数が返されます。

バージョン2.5で変更: Pythonはデフォルトでfloat値を返すようになりました。 浮動小数点タイムスタンプで正しく機能しないアプリケーションは、この関数を使用して古い動作を復元できます。

タイムスタンプの解像度(つまり、可能な最小の割合)は、システムによって異なります。 一部のシステムは2番目の解像度のみをサポートします。 これらのシステムでは、分数は常にゼロになります。

この設定は、 __ main __ モジュールのプログラム起動時にのみ変更することをお勧めします。 ライブラリはこの設定を変更しないでください。 浮動小数点タイムスタンプが処理されると正しく機能しないライブラリをアプリケーションが使用する場合、このアプリケーションは、ライブラリが修正されるまでこの機能をオフにする必要があります。

os.statvfs(path)

指定されたパスでstatvfs()システムコールを実行します。 戻り値は、属性が指定されたパス上のファイルシステムを記述し、statvfs構造のメンバー、つまりf_bsizef_frsizef_blocksf_bfreef_bavailf_filesf_ffreef_favailf_flag、 [ X262X]。

下位互換性のために、戻り値は、値が属性に対応するタプルとして、上記の順序でアクセスすることもできます。 標準モジュール statvfs は、シーケンスとしてアクセスするときにstatvfs構造から情報を抽出するのに役立つ定数を定義します。 これは、属性としてのフィールドへのアクセスをサポートしていないバージョンのPythonで動作する必要があるコードを作成する場合に引き続き役立ちます。

可用性:Unix。

バージョン2.2で変更:返されたオブジェクトの属性として値へのアクセスを追加しました。

os.symlink(source, link_name)

link_name という名前の source を指すシンボリックリンクを作成します。

可用性:Unix。

os.tempnam([dir[, prefix]])

一時ファイルの作成に適した一意のパス名を返します。 これは、ディレクトリ dir 内の潜在的なディレクトリエントリを指定する絶対パス、または dir が省略されているかNoneの場合は一時ファイルの共通の場所になります。 Noneではなく指定されている場合、 prefix は、ファイル名に短いプレフィックスを提供するために使用されます。 アプリケーションは、 tempnam()によって返されるパスを使用して作成されたファイルを適切に作成および管理する責任があります。 自動クリーンアップは提供されていません。 Unixでは、環境変数 TMPDIRdir をオーバーライドしますが、Windowsでは TMPが使用されます。 この関数の特定の動作は、Cライブラリの実装によって異なります。 一部の側面は、システムドキュメントで過小指定されています。

警告

tempnam()の使用は、シンボリックリンク攻撃に対して脆弱です。 代わりに、 tmpfile()(セクションファイルオブジェクトの作成)の使用を検討してください。

可用性:Unix、Windows。

os.tmpnam()

一時ファイルの作成に適した一意のパス名を返します。 これは、一時ファイルの共通の場所にある潜在的なディレクトリエントリを指定する絶対パスになります。 アプリケーションは、 tmpnam()によって返されるパスを使用して作成されたファイルを適切に作成および管理する責任があります。 自動クリーンアップは提供されていません。

警告

tmpnam()の使用は、シンボリックリンク攻撃に対して脆弱です。 代わりに、 tmpfile()(セクションファイルオブジェクトの作成)の使用を検討してください。

可用性:Unix、Windows。 ただし、この関数はおそらくWindowsでは使用しないでください。Microsoftによる tmpnam()の実装では、常に現在のドライブのルートディレクトリに名前が作成されます。これは、通常、一時ファイルの場所としては不適切です(特権では、この名前を使用してファイルを開くことさえできない場合があります)。

os.TMP_MAX
tmpnam()が名前を再利用する前に生成する一意の名前の最大数。
os.unlink(path)

ファイルパスを削除(削除)します。 これは remove()と同じ関数です。 unlink()の名前は、その従来のUnix名です。

可用性:Unix、Windows。

os.utime(path, times)

パスで指定したファイルのアクセス時間と変更時間を設定します。 timesNoneの場合、ファイルのアクセス時刻と変更時刻は現在の時刻に設定されます。 (効果は、パス上でUnixプログラム touch を実行するのと同様です。)それ以外の場合、 times は、(atime, mtime)の形式の2タプルの数値である必要があります。アクセス時間と変更時間をそれぞれ設定するために使用されます。 パスにディレクトリを指定できるかどうかは、オペレーティングシステムがディレクトリをファイルとして実装するかどうかによって異なります(たとえば、Windowsでは実装されません)。 ここで設定した正確な時刻は、オペレーティングシステムがアクセス時刻と変更時刻を記録する解像度によっては、後続の stat()呼び出しによって返されない場合があることに注意してください。 stat()を参照してください。

バージョン2.0で変更: Noneのサポートが追加されました。

可用性:Unix、Windows。

os.walk(top, topdown=True, onerror=None, followlinks=False)

ツリーをトップダウンまたはボトムアップでウォークして、ディレクトリツリーにファイル名を生成します。 ディレクトリ toptop 自体を含む)をルートとするツリー内のディレクトリごとに、3タプル(dirpath, dirnames, filenames)が生成されます。

dirpath は文字列であり、ディレクトリへのパスです。 dirnames は、 dirpath 内のサブディレクトリの名前のリストです('.''..'を除く)。 filenames は、 dirpath 内の非ディレクトリファイルの名前のリストです。 リスト内の名前にはパスコンポーネントが含まれていないことに注意してください。 dirpath 内のファイルまたはディレクトリへのフルパス( top で始まる)を取得するには、os.path.join(dirpath, name)を実行します。

オプションの引数 topdownTrueであるか指定されていない場合、ディレクトリのトリプルは、そのサブディレクトリのトリプルの前に生成されます(ディレクトリはトップダウンで生成されます)。 topdownFalseの場合、ディレクトリのトリプルは、そのすべてのサブディレクトリのトリプルの後に生成されます(ディレクトリはボトムアップで生成されます)。 topdown の値に関係なく、サブディレクトリのリストは、ディレクトリとそのサブディレクトリのタプルが生成される前に取得されます。

topdownTrueの場合、呼び出し元は dirnames リストをインプレースで(おそらく del またはスライス割り当てを使用して)変更でき、[X148X ] walk()は、名前が dirnames に残っているサブディレクトリにのみ再帰します。 これを使用して、検索を削除したり、特定の訪問順序を課したり、呼び出し元が walk()を再開する前に、呼び出し元が作成または名前変更したディレクトリについて walk()に通知したりすることもできます。 topdownFalseのときに dirnames を変更しても、ウォークの動作には影響しません。ボトムアップモードでは、 dirnames のディレクトリが dirpath 自体が生成される前に生成されます。

デフォルトでは、 listdir()呼び出しからのエラーは無視されます。 オプションの引数 onerror が指定されている場合、それは関数である必要があります。 OSErrorインスタンスという1つの引数で呼び出されます。 エラーを報告してウォークを続行するか、例外を発生させてウォークを中止することができます。 ファイル名は、例外オブジェクトのfilename属性として使用できることに注意してください。

デフォルトでは、 walk()は、ディレクトリに解決されるシンボリックリンクに移動しません。 followlinksTrueに設定して、シンボリックリンクをサポートするシステムで、シンボリックリンクが指すディレクトリにアクセスします。

バージョン2.6の新機能: followlinks パラメーター。

ノート

followlinksTrueに設定すると、リンクがそれ自体の親ディレクトリを指している場合、無限再帰が発生する可能性があることに注意してください。 walk()は、すでにアクセスしたディレクトリを追跡しません。

ノート

相対パス名を渡す場合は、 walk()の再開の間に現在の作業ディレクトリを変更しないでください。 walk()は現在のディレクトリを変更せず、呼び出し元も変更しないと想定します。

この例では、CVSサブディレクトリの下を検索しないことを除いて、開始ディレクトリの下の各ディレクトリでディレクトリ以外のファイルが使用したバイト数を表示します。

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print root, "consumes",
    print sum(getsize(join(root, name)) for name in files),
    print "bytes in", len(files), "non-directory files"
    if 'CVS' in dirs:
        dirs.remove('CVS')  # don't visit CVS directories

次の例では、ツリーをボトムアップで歩くことが不可欠です。 rmdir()では、ディレクトリが空になる前にディレクトリを削除することはできません。

# Delete everything reachable from the directory named in "top",
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

バージョン2.3の新機能。


15.1.5。 プロセス管理

これらの関数は、プロセスを作成および管理するために使用できます。

さまざまな exec * 関数は、プロセスにロードされた新しいプログラムの引数のリストを取ります。 いずれの場合も、これらの引数の最初のものは、ユーザーがコマンドラインで入力した引数としてではなく、独自の名前として新しいプログラムに渡されます。 Cプログラマーの場合、これはプログラムのmain()に渡されるargv[0]です。 たとえば、os.execv('/bin/echo', ['foo', 'bar'])barのみを標準出力に出力します。 fooは無視されているように見えます。

os.abort()

現在のプロセスへのSIGABRTシグナルを生成します。 Unixでは、デフォルトの動作はコアダンプを生成することです。 Windowsでは、プロセスはすぐに3の終了コードを返します。 この関数を呼び出しても、 signal.signal()SIGABRTに登録されているPythonシグナルハンドラーは呼び出されないことに注意してください。

可用性:Unix、Windows。

os.execl(path, arg0, arg1, ...)
os.execle(path, arg0, arg1, ..., env)
os.execlp(file, arg0, arg1, ...)
os.execlpe(file, arg0, arg1, ..., env)
os.execv(path, args)
os.execve(path, args, env)
os.execvp(file, args)
os.execvpe(file, args, env)

これらの関数はすべて新しいプログラムを実行し、現在のプロセスを置き換えます。 彼らは戻ってこない。 Unixでは、新しい実行可能ファイルが現在のプロセスにロードされ、呼び出し元と同じプロセスIDを持ちます。 エラーはOSError例外として報告されます。

現在のプロセスはすぐに置き換えられます。 開いているファイルオブジェクトと記述子はフラッシュされないため、これらの開いているファイルにデータがバッファリングされている可能性がある場合は、を呼び出す前にsys.stdout.flush()または os.fsync()を使用してフラッシュする必要があります。 exec * 関数。

exec * 関数の「l」と「v」のバリアントは、コマンドライン引数の受け渡し方法が異なります。 「l」バリアントは、コードの記述時にパラメーターの数が固定されている場合、おそらく最も簡単に操作できます。 個々のパラメーターは、単にexecl*()関数への追加パラメーターになります。 「v」バリアントは、パラメーターの数が可変で、引数が args パラメーターとしてリストまたはタプルで渡される場合に適しています。 いずれの場合も、子プロセスへの引数は、実行されているコマンドの名前で開始する必要がありますが、これは強制されません。

末尾に「p」を含むバリアント( execlp()execlpe()execvp()、および execvpe()[ X122X])は、 PATH環境変数を使用して、プログラムファイルを検索します。 環境が置き換えられるとき(次の段落で説明する exec * e バリアントの1つを使用)、新しい環境が [X179Xのソースとして使用されます。 ] 変数。 他のバリアント、 execute()execute()execv()、および execve()は、[実行可能ファイルを見つけるためのX123X] PATH変数。 パスには、適切な絶対パスまたは相対パスが含まれている必要があります。

execle()execute()execve()、および execvpe()の場合(これらはすべて「e」で終わることに注意してください) 」)、 env パラメーターは、新しいプロセスの環境変数を定義するために使用されるマッピングである必要があります(これらは現在のプロセスの環境の代わりに使用されます)。 関数 execl()execlp()execv()、および execvp()はすべて、新しいプロセスに現在のプロセスの環境。

可用性:Unix、Windows。

os._exit(n)

クリーンアップハンドラーを呼び出したり、stdioバッファーをフラッシュしたりせずに、ステータス n でプロセスを終了します。

可用性:Unix、Windows。

ノート

終了する標準的な方法はsys.exit(n)です。 _exit()は通常、 fork()の後の子プロセスでのみ使用する必要があります。

以下の終了コードが定義されており、 _exit()で使用できますが、必須ではありません。 これらは通常、メールサーバーの外部コマンド配信プログラムなど、Pythonで記述されたシステムプログラムに使用されます。

ノート

いくつかのバリエーションがあるため、これらの一部はすべてのUnixプラットフォームで使用できるとは限りません。 これらの定数は、基盤となるプラットフォームによって定義される場所で定義されます。


os.EX_OK

エラーが発生しなかったことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_USAGE

間違った数の引数が指定された場合など、コマンドが誤って使用されたことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_DATAERR

入力データが正しくないことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_NOINPUT

入力ファイルが存在しないか、読み取り可能ではなかったことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_NOUSER

指定されたユーザーが存在しなかったことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_NOHOST

指定されたホストが存在しなかったことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_UNAVAILABLE

必要なサービスが利用できないことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_SOFTWARE

内部ソフトウェアエラーが検出されたことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_OSERR

パイプをフォークまたは作成できないなど、オペレーティングシステムエラーが検出されたことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_OSFILE

一部のシステムファイルが存在しなかったか、開くことができなかったか、またはその他の種類のエラーが発生したことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_CANTCREAT

ユーザー指定の出力ファイルを作成できなかったことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_IOERR

一部のファイルでI / Oの実行中にエラーが発生したことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_TEMPFAIL

一時的な障害が発生したことを意味する終了コード。 これは、再試行可能な操作中にネットワーク接続を確立できなかったなど、実際にはエラーではない可能性があることを示しています。

可用性:Unix。

バージョン2.3の新機能。

os.EX_PROTOCOL

プロトコル交換が違法、無効、または理解されていないことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_NOPERM

操作を実行するための十分な権限がなかったことを意味する終了コード(ただし、ファイルシステムの問題を対象としていません)。

可用性:Unix。

バージョン2.3の新機能。

os.EX_CONFIG

何らかの構成エラーが発生したことを意味する終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.EX_NOTFOUND

「エントリが見つかりませんでした」などの意味の終了コード。

可用性:Unix。

バージョン2.3の新機能。

os.fork()

子プロセスをforkします。 子に0を返し、親に子のプロセスIDを返します。 エラーが発生した場合、OSErrorが発生します。

FreeBSD <= 6.3、Cygwin、OS / 2 EMXなどの一部のプラットフォームでは、スレッドからfork()を使用するときに既知の問題があることに注意してください。

警告

fork()でSSLモジュールを使用するアプリケーションについては、 ssl を参照してください。

可用性:Unix。

os.forkpty()

新しい疑似端末を子の制御端末として使用して、子プロセスをforkします。 (pid, fd)のペアを返します。ここで、 pid は子の0、新しい子のプロセスIDは親、 fd はファイルです。疑似端末のマスターエンドの記述子。 より移植性の高いアプローチについては、 pty モジュールを使用してください。 エラーが発生した場合、OSErrorが発生します。

可用性:Unixのいくつかのフレーバー。

os.kill(pid, sig)

シグナル sig をプロセス pid に送信します。 ホストプラットフォームで使用可能な特定の信号の定数は、 signal モジュールで定義されています。

Windows: signal.CTRL_C_EVENT および signal.CTRL_BREAK_EVENT シグナルは、いくつかのサブプロセスなど、共通のコンソールウィンドウを共有するコンソールプロセスにのみ送信できる特別なシグナルです。 sig の他の値を指定すると、TerminateProcess APIによってプロセスが無条件に強制終了され、終了コードが sig に設定されます。 Windows版の kill()は、プロセスハンドルを追加で強制終了します。

バージョン2.7の新機能: Windowsサポート

os.killpg(pgid, sig)

シグナル sig をプロセスグループ pgid に送信します。

可用性:Unix。

バージョン2.3の新機能。

os.nice(increment)

プロセスの「素晴らしさ」に increment を追加します。 新しい優しさを返します。

可用性:Unix。

os.plock(op)

プログラムセグメントをメモリにロックします。 op<sys/lock.h>で定義)の値によって、ロックされるセグメントが決まります。

可用性:Unix。

os.popen(...)

os.popen2(...)
os.popen3(...)
os.popen4(...)

子プロセスを実行し、通信用に開いたパイプを返します。 これらの機能については、ファイルオブジェクトの作成のセクションで説明しています。
os.spawnl(mode, path, ...)
os.spawnle(mode, path, ..., env)
os.spawnlp(mode, file, ...)
os.spawnlpe(mode, file, ..., env)
os.spawnv(mode, path, args)
os.spawnve(mode, path, args, env)
os.spawnvp(mode, file, args)
os.spawnvpe(mode, file, args, env)

新しいプロセスでプログラム path を実行します。

サブプロセスモジュールは、新しいプロセスを生成してその結果を取得するためのより強力な機能を提供することに注意してください。これらの関数を使用するよりも、そのモジュールを使用することをお勧めします。 特に古い機能のサブプロセスモジュールセクションへの置き換えを確認してください。)

modeP_NOWAIT の場合、この関数は新しいプロセスのプロセスIDを返します。 modeP_WAIT の場合、プロセスが正常に終了した場合はプロセスの終了コードを返します。-signalの場合、 signal はプロセスを強制終了したシグナルです。 。 Windowsでは、プロセスIDは実際にはプロセスハンドルになるため、 waitpid()関数で使用できます。

spawn * 関数の「l」と「v」のバリアントは、コマンドライン引数の受け渡し方法が異なります。 「l」バリアントは、コードの記述時にパラメーターの数が固定されている場合、おそらく最も簡単に操作できます。 個々のパラメーターは、単にspawnl*()関数への追加パラメーターになります。 「v」バリアントは、パラメーターの数が可変で、引数が args パラメーターとしてリストまたはタプルで渡される場合に適しています。 いずれの場合も、子プロセスへの引数は、実行されているコマンドの名前で始まる必要があります。

末尾近くに2番目の「p」を含むバリアント( spawnlp()spawnlpe()spawnvp()、および spawnvpe() )は、 PATH環境変数を使用して、プログラムファイルを検索します。 環境が置き換えられるとき(次の段落で説明する spawn * e バリアントの1つを使用)、新しい環境が [X180Xのソースとして使用されます。 ] 変数。 他のバリアント、 spawnl()spawnle()spawnv()、および spawnve()は、[実行可能ファイルを見つけるためのX127X] PATH変数。 パスには、適切な絶対パスまたは相対パスが含まれている必要があります。

spawnle()spawnlpe()spawnve()、および spawnvpe()の場合(これらはすべて「e」で終わることに注意してください) 」)、 env パラメーターは、新しいプロセスの環境変数を定義するために使用されるマッピングである必要があります(現在のプロセスの環境の代わりに使用されます)。 関数 spawnl()spawnlp()spawnv()、および spawnvp()はすべて、新しいプロセスに現在のプロセスの環境。 env ディクショナリのキーと値は文字列でなければならないことに注意してください。 キーまたは値が無効な場合、関数は失敗し、戻り値は127になります。

例として、 spawnlp()spawnvpe()の次の呼び出しは同等です。

import os
os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')

L = ['cp', 'index.html', '/dev/null']
os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)

可用性:Unix、Windows。 spawnlp()spawnlpe()spawnvp()spawnvpe()はWindowsでは使用できません。 spawnle()および spawnve()は、Windowsではスレッドセーフではありません。 代わりにサブプロセスモジュールを使用することをお勧めします。

バージョン1.6の新機能。

os.P_NOWAIT
os.P_NOWAITO

spawn * ファミリーの関数の mode パラメーターに指定できる値。 これらの値のいずれかが指定されている場合、spawn*()関数は、新しいプロセスが作成されるとすぐに戻り、プロセスIDが戻り値になります。

可用性:Unix、Windows。

バージョン1.6の新機能。

os.P_WAIT

spawn * ファミリーの関数の mode パラメーターに指定できる値。 これが mode として指定されている場合、spawn*()関数は、新しいプロセスが完了するまで実行されず、実行が成功したプロセスの終了コード、または-signalシグナルがプロセスを強制終了した場合。

可用性:Unix、Windows。

バージョン1.6の新機能。

os.P_DETACH
os.P_OVERLAY

spawn * ファミリーの関数の mode パラメーターに指定できる値。 これらは、上記のリストよりも移植性が低くなります。 P_DETACHP_NOWAIT に似ていますが、新しいプロセスは呼び出し元プロセスのコンソールから切り離されています。 P_OVERLAY が使用されている場合、現在のプロセスが置き換えられます。 spawn*()関数は戻りません。

可用性:Windows。

バージョン1.6の新機能。

os.startfile(path[, operation])

関連するアプリケーションでファイルを開始します。

操作が指定されていないか'open'の場合、これはWindowsエクスプローラーでファイルをダブルクリックするか、 start コマンドの引数としてファイル名を指定するように機能します。対話型コマンドシェル:ファイルは、その拡張子が関連付けられているアプリケーション(存在する場合)で開かれます。

別の操作が与えられるとき、それはファイルで何をすべきかを指定する「コマンド動詞」でなければなりません。 Microsoftによって文書化されている一般的な動詞は、'print''edit'(ファイルで使用)、および'explore''find'(ディレクトリで使用)です。

startfile()は、関連付けられたアプリケーションが起動されるとすぐに戻ります。 アプリケーションが閉じるのを待つオプションはなく、アプリケーションの終了ステータスを取得する方法もありません。 path パラメータは、現在のディレクトリを基準にしています。 絶対パスを使用する場合は、最初の文字がスラッシュ('/')でないことを確認してください。 基盤となるWin32 ShellExecute()関数は、機能している場合は機能しません。 os.path.normpath()関数を使用して、パスがWin32用に適切にエンコードされていることを確認します。

可用性:Windows。

バージョン2.0の新機能。

バージョン2.5の新機能: 操作パラメーター。

os.system(command)

サブシェルでコマンド(文字列)を実行します。 これは、標準C関数system()を呼び出すことによって実装され、同じ制限があります。 sys.stdin などへの変更。 実行したコマンドの環境には反映されません。

Unixでは、戻り値は wait()に指定された形式でエンコードされたプロセスの終了ステータスです。 POSIXはC system()関数の戻り値の意味を指定していないため、Python関数の戻り値はシステムに依存することに注意してください。

Windowsの場合、戻り値は、コマンドの実行後にシステムシェルによって返される値であり、Windows環境変数 COMSPEC:on command.com [ X178X]システム(Windows 95、98、およびME)これは常に0です。 cmd.exe システム(Windows NT、2000、およびXP)では、これはコマンド実行の終了ステータスです。 非ネイティブシェルを使用するシステムでは、シェルのドキュメントを参照してください。

サブプロセスモジュールは、新しいプロセスを生成してその結果を取得するためのより強力な機能を提供します。 この関数を使用するよりも、そのモジュールを使用することをお勧めします。 いくつかの役立つレシピについては、サブプロセスドキュメントの古い関数のサブプロセスモジュールセクションへの置き換えを参照してください。

可用性:Unix、Windows。

os.times()

累積(プロセッサまたはその他)時間を秒単位で示す浮動小数点数の5タプルを返します。 項目は、ユーザー時間、システム時間、子供のユーザー時間、子供のシステム時間、過去の定点からの経過リアルタイムの順です。 Unixのマニュアルページ times(2)または対応するWindowsプラットフォームAPIのドキュメントを参照してください。 Windowsでは、最初の2つの項目のみが入力され、他の項目はゼロです。

可用性:Unix、Windows

os.wait()

子プロセスの完了を待ち、そのpidと終了ステータスの表示を含むタプルを返します。16ビットの数値。下位バイトはプロセスを強制終了した信号番号であり、上位バイトは終了ステータスです(信号の場合)。数はゼロです); コアファイルが作成された場合、下位バイトの上位ビットが設定されます。

可用性:Unix。

os.waitpid(pid, options)

この関数の詳細は、UnixとWindowsで異なります。

Unixの場合:プロセスID pid で指定された子プロセスの完了を待ち、プロセスIDと終了ステータスの表示( wait()のようにエンコード)を含むタプルを返します。 呼び出しのセマンティクスは、整数 options の値の影響を受けます。これは、通常の操作では0である必要があります。

pid0より大きい場合、 waitpid()はその特定のプロセスのステータス情報を要求します。 pid0の場合、要求は現在のプロセスのプロセスグループ内の任意の子のステータスに対するものです。 pid-1の場合、要求は現在のプロセスのすべての子に関係します。 pid-1より小さい場合、プロセスグループ-pidpid の絶対値)内のすべてのプロセスのステータスが要求されます。

OSErrorは、syscallが-1を返すと、errnoの値で発生します。

Windowsの場合:プロセスハンドル pid で指定されたプロセスの完了を待ち、 pid を含むタプルを返し、その終了ステータスを8ビット左にシフトします(シフトするとクロスプラットフォームで使用されます)関数のより簡単)。 pid0以下の場合、Windowsでは特別な意味はなく、例外が発生します。 整数 options の値は効果がありません。 pid は、IDがわかっているプロセスを参照できますが、必ずしも子プロセスである必要はありません。 P_NOWAIT で呼び出された spawn * 関数は、適切なプロセスハンドルを返します。

os.wait3(options)

waitpid()と同様ですが、プロセスID引数が指定されておらず、子のプロセスID、終了ステータスの表示、およびリソース使用状況情報を含む3要素のタプルが返されます。 リソースの使用情報の詳細については、 resourcegetrusage()を参照してください。 オプション引数は、 waitpid()および wait4()に提供されるものと同じです。

可用性:Unix。

バージョン2.5の新機能。

os.wait4(pid, options)

waitpid()と同様ですが、子のプロセスID、終了ステータスの表示、およびリソース使用状況情報を含む3要素のタプルが返されます。 リソースの使用情報の詳細については、 resourcegetrusage()を参照してください。 wait4()の引数は、 waitpid()に提供されている引数と同じです。

可用性:Unix。

バージョン2.5の新機能。

os.WNOHANG

waitpid()のオプションは、子プロセスのステータスがすぐに利用できない場合にすぐに戻ります。 この場合、関数は(0, 0)を返します。

可用性:Unix。

os.WCONTINUED

このオプションを使用すると、子プロセスのステータスが最後に報告されてからジョブ制御の停止から続行された場合に、子プロセスが報告されます。

可用性:一部のUnixシステム。

バージョン2.3の新機能。

os.WUNTRACED

このオプションを使用すると、子プロセスが停止しているが、停止してから現在の状態が報告されていない場合に、子プロセスが報告されます。

可用性:Unix。

バージョン2.3の新機能。

次の関数は、 system()wait()、または waitpid()によって返されるプロセスステータスコードをパラメーターとして受け取ります。 これらは、プロセスの処理を決定するために使用できます。

os.WCOREDUMP(status)

プロセスに対してコアダンプが生成された場合はTrueを返し、そうでない場合はFalseを返します。

可用性:Unix。

バージョン2.3の新機能。

os.WIFCONTINUED(status)

プロセスがジョブ制御停止から続行された場合はTrueを返し、それ以外の場合はFalseを返します。

可用性:Unix。

バージョン2.3の新機能。

os.WIFSTOPPED(status)

プロセスが停止している場合はTrueを返し、それ以外の場合はFalseを返します。

可用性:Unix。

os.WIFSIGNALED(status)

シグナルが原因でプロセスが終了した場合はTrueを返し、それ以外の場合はFalseを返します。

可用性:Unix。

os.WIFEXITED(status)

プロセスが exit(2)システムコールを使用して終了した場合はTrueを返し、それ以外の場合はFalseを返します。

可用性:Unix。

os.WEXITSTATUS(status)

WIFEXITED(status)がtrueの場合、整数パラメーターを exit(2)システムコールに返します。 それ以外の場合、戻り値は無意味です。

可用性:Unix。

os.WSTOPSIG(status)

プロセスを停止させたシグナルを返します。

可用性:Unix。

os.WTERMSIG(status)

プロセスを終了させたシグナルを返します。

可用性:Unix。


15.1.6。 その他のシステム情報

os.confstr(name)

文字列値のシステム構成値を返します。 name は、取得する構成値を指定します。 定義されたシステム値の名前である文字列である可能性があります。 これらの名前は、多くの標準(POSIX、Unix 95、Unix 98など)で指定されています。 一部のプラットフォームでは、追加の名前も定義されています。 ホストオペレーティングシステムに認識されている名前は、confstr_namesディクショナリのキーとして指定されています。 そのマッピングに含まれていない構成変数の場合、 name の整数の受け渡しも受け入れられます。

name で指定された構成値が定義されていない場合は、Noneが返されます。

name が文字列で不明な場合、ValueErrorが発生します。 name の特定の値がホストシステムでサポートされていない場合、confstr_namesに含まれていても、OSErrorは errno.EINVAL [で発生します。エラー番号はX156X]。

可用性:Unix

os.confstr_names

confstr()によって受け入れられた名前を、ホストオペレーティングシステムによってそれらの名前に対して定義された整数値にマッピングする辞書。 これは、システムに認識されている名前のセットを判別するために使用できます。

可用性:Unix。

os.getloadavg()

過去1、5、および15分間に平均化されたシステム実行キュー内のプロセス数を返すか、負荷平均が取得できない場合はOSErrorを上げます。

可用性:Unix。

バージョン2.3の新機能。

os.sysconf(name)

整数値のシステム構成値を返します。 name で指定された構成値が定義されていない場合は、-1が返されます。 confstr()name パラメーターに関するコメントはここにも当てはまります。 既知の名前に関する情報を提供する辞書は、sysconf_namesによって提供されます。

可用性:Unix。

os.sysconf_names

sysconf()によって受け入れられた名前を、ホストオペレーティングシステムによってそれらの名前に対して定義された整数値にマッピングする辞書。 これは、システムに認識されている名前のセットを判別するために使用できます。

可用性:Unix。

次のデータ値は、パス操作操作をサポートするために使用されます。 これらはすべてのプラットフォームに対して定義されています。

パス名に対する高レベルの操作は、 os.path モジュールで定義されています。

os.curdir
現在のディレクトリを参照するためにオペレーティングシステムによって使用される定数文字列。 これは、WindowsおよびPOSIXの'.'です。 os.path からも入手できます。
os.pardir
オペレーティングシステムが親ディレクトリを参照するために使用する定数文字列。 これは、WindowsおよびPOSIXの'..'です。 os.path からも入手できます。
os.sep
オペレーティングシステムがパス名コンポーネントを区切るために使用する文字。 これは、POSIXの場合は'/'、Windowsの場合は'\\'です。 パス名を解析または連結するには、これを知っているだけでは不十分であることに注意してください— os.path.split()および os.path.join()を使用します—ただし、場合によっては便利です。 。 os.path からも入手できます。
os.altsep
オペレーティングシステムがパス名コンポーネントを区切るために使用する代替文字。区切り文字が1つしかない場合はNone。 これは、sepが円記号であるWindowsシステムでは'/'に設定されます。 os.path からも入手できます。
os.extsep

ベースファイル名と拡張子を区切る文字。 たとえば、os.py'.'os.path からも入手できます。

バージョン2.2の新機能。

os.pathsep
POSIXの場合は':'、Windowsの場合は';'など、検索パスコンポーネントを区切るためにオペレーティングシステムで従来使用されていた文字( PATHなど)。 os.path からも入手できます。
os.defpath
環境に'PATH'キーがない場合に、 exec * p * および spawn * p * によって使用されるデフォルトの検索パス。 os.path からも入手できます。
os.linesep
現在のプラットフォームで行を区切る(または終了する)ために使用される文字列。 これは、POSIXの場合は'\n'のように単一の文字にすることも、Windowsの場合は'\r\n'のように複数の文字にすることもできます。 テキストモード(デフォルト)で開いたファイルを書き込むときは、 os.linesep を行末記号として使用しないでください。 代わりに、すべてのプラットフォームで単一の'\n'を使用してください。
os.devnull

nullデバイスのファイルパス。 例:POSIXの場合は'/dev/null'、Windowsの場合は'nul'os.path からも入手できます。

バージョン2.4の新機能。


15.1.7。 その他の機能

os.urandom(n)

暗号化の使用に適した n ランダムバイトの文字列を返します。

この関数は、OS固有のランダム性ソースからランダムバイトを返します。 返されるデータは、暗号化アプリケーションでは十分に予測できないはずですが、正確な品質はOSの実装によって異なります。 UNIXライクなシステムでは、これは/dev/urandomを照会し、WindowsではCryptGenRandom()を使用します。 ランダム性のソースが見つからない場合、NotImplementedErrorが発生します。

プラットフォームが提供する乱数ジェネレーターへの使いやすいインターフェイスについては、 random.SystemRandom を参照してください。

バージョン2.4の新機能。