このモジュールは標準入力またはファイルリストに対して、繰り返し処理を速く書く ためのヘルパークラスと関数を実装しています。
典型的な使用例は以下のようになります。
import fileinput for line in fileinput.input(): process(line)
sys.argv[1:]でリスト(そのリストが空ならsys.stdinが 使われます)されたすべてのファイルの各行に対して繰り返しを行います。 ファイル名が'-'であればそれもsys.stdinで置き換えられます。 ファイル名の代替リストを指定したければ、それをinput()の第一引数に 渡して下さい。ファイル名が一つでも許されます。
すべてのファイルはテキストモードでオープンされます。オープンまたは読み込み 中にI/Oエラーが発生するとIOError例外が発生します。
sys.stdinが2度以上使われると、対話型で利用している場合または 明示的にリセット(例えばsys.stdin.seek(0)を使って)された場合を除いて 2度目以降は何も行を返しません。
空のファイルはオープンされてすぐにクローズされます。 ファイル名リストの中にそれらがあることに気付くのは最後にオープンされた ファイルが空であった時だけです。
ファイルの最終行がニューライン文字で終っていなくても大丈夫です。 最後のニューライン文字がある場合はそれを含んだ行を返します。
以下の関数がこのモジュールの基本的なインタフェースです。
以下の関数はinput()で生成されたグローバルな状態を使用します。 アクティブな状態がなければRuntimeError例外が発生します。
このモジュールが提供するシーケンスに対する動作を実装したクラスを サブクラス化のために利用できます。
オプションの直接書き換えフィルタリング: キーワード引数inplace=1がinput()または FileInputコンストラクタに渡されたときは、そのファイルはバックアップが とられ、標準出力がその入力ファイルに向けられます。 これにより入力ファイルを直接書き換えるフィルタを書くことが出来ます。 キーワード引数backup='.<some extension>'も指定されて いれば、それがバックアップファイルの拡張子を指定し、そのバックアップファイル はそのまま残されます。デフォルトでは拡張子は'.bak'で出力ファイルが クローズされたときに削除されます。直接書き換えフィルタリングは標準入力から 読み込まれているときには無効です。
警告: 現在の実装はMS-DOSの8+3ファイルシステムでは動作しません。
guido@python.org