ファイル記述子 (fd) は、システム内で現在開かれているファイルを一意に記録するために使用される識別番号です。fd は整数です。
ファイル オブジェクトに加えて、Python は fd に対する操作も提供します。fd に対する操作はより低レベルです。Python の fd オブジェクトとファイル オブジェクトは異なる概念です。ファイル オブジェクトの導入時に説明したように、 f.fileno() を呼び出すとファイル オブジェクトの fd を取得できます。また、既存の fd にファイル オブジェクトをカプセル化することもできます (f = os.fdopen(fd))。
#いくつかの fd は、プロセスの作成時に事前に割り当てられます:
0——プロセスの標準入力
1 - プロセスの stdout
2 - プロセスの stderr
Python の os モジュールは、fd に次のメソッドを提供します。
1. fd
os.close(fd)
2. fd
os.dup(fd)
をコピーします。新しい fd1 を返します。この fd1 はコピーされます。パラメータ fd.
3. fd をコピーします
os.dup2(fd, fd2)
fd を fd2 にコピーします。fd2 がすでに開いている場合は、最初に閉じます。
4. fd からファイル オブジェクトへ
os.fdopen(fd, mode='r', bufsize=-1)
fd をカプセル化する Python ファイル オブジェクトを返します。パラメータ mode と bufsize は、組み込みの open() 関数に対応します。パラメータは同じ意味を持ちます。
5. fd
os.fstat(fd)
からファイルのさまざまな属性を取得し、stat_result タイプのインスタンス x と os.stat(path) を返します。返される型は同じですが、対応するファイルの関連属性が fd を通じて取得される点が異なります。
6. fd
os.lseek(fd, pos, how)
に対応するファイルの現在位置を変更します。効果は f.seek(pos, how) と同じで、パラメーター how を指定します。参照点は全部で3種類あり、os.SEEK_SET == 0(ファイルの先頭)、os.SEEK_CUR == 1(現在位置)、os.SEEK_END == 2(ファイルの末尾)です。
##f.tell() に似たものはありません この方法では、fd を使用してファイルの現在位置を直接取得できます。実際、os.lseek() を使用して自分で実装することもできます。は、現在の fd に対応するファイルの位置を返すことができ、影響を受ける元のファイルは変更されません。
7. ファイルを開いて、fd以上がPythonのfdとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。os.lseek(fd, 0, os.SEEK_CUR)