Select Language

AI Technology Community

5.9、Python fileno()関数:ファイル番号を取得する

この関数は、プロセス内でのファイルの番号を取得するために使用されます。これは整数値です。なお、stdin のプロセス内でのファイル番号は常に 0、stdout は常に 1、stderr は常に 2 であり、その他のファイルの番号はすべて 2 より大きくなります。

以下の例では、通常のファイルの番号と 3 つの特殊なファイルの番号を確認しています。

>>> import sys                    # sysモジュールをインポートする
>>> fd = open("./in.dat", "rb")   # 通常のファイルを開く
>>> fd.fileno()               # このファイルの番号を取得する
3
>>> fd.close()                # このファイルを閉じる
>>> sys.stdin.fileno()        # stdinのファイル番号を取得する
0
>>> sys.stdout.fileno()       # stdoutのファイル番号を取得する
1
>>> sys.stderr.fileno()       # stderrのファイル番号を取得する
2

もしそのファイルが既に閉じられている場合、fileno() は ValueError 例外をスローします。以下のコードでは、この状況を示しています。

>>> import sys
>>> fd = open("./in.dat", "rb")        # ファイルを開く
>>> fd.fileno()
3
>>> fd.close()       # ファイルを閉じる
>>> fd.fileno()      # ファイル番号を取得できず、例外ValueErrorがスローされる
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file


post
  • 14

    item of content
データを長期的に保存したい場合、最も簡単な方法はデータをディスクファイルに書き込むことです。これにより、プログラムを終了した後でも処理結果は長期的に有効です。
大規模ソフトウェアプロジェクトでは、ファイル操作は避けられません。この章では、普通のテキストファイルとバイナリファイルの操作方法について説明します。具体的には、ファイルを開く方法、ファイルの読み書き、ファイルモード、および with 文の使用方法などを含みます。