Pythonマニア

Pythonを楽しむ!

Archive List for Python3 入門

Python3入門 – ファイル入出力

Pythonプログラムで使用していたデータを永続的に保存するにはファイルが最もよく使われます。 いったんファイルへ保存すれば、後でそれを読み込んでデータを再利用することができます。またファイルからデータを読み込んでPythonに処理させることもよく行われます。 プログラムを書くうえで、ファイル入出力はなくてはならないものです。ここではPythonのファイル入出力の方法を説明します。 ファイル入出力の概要 Pythonでファイルの入出力を行うには、まずファイルを開く必要があります。 ファイルを開くには組み込みのopen()関数を使います。 open()関数の完全な引数とデフォルト値は次の通りです。 open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None) ただし、重要な引数は次の4つだけです。ほとんどの場合、これさえ理解していれば十分です。 open(file, mode='r', encoding=None, newline=None) 引数fileにはファイル名(絶対パスか相対パス)を文字列で指定します。 引数modeは、どのモードでファイルを開くかを指示する文字列を渡します。 一般には次の2つの文字を組み合わせて指定します。 1つは次の文字のいずれかです。 文字意味 r読み込み用に開く(デフォルト) w 書き込み用に開く。ファイルが存在しない場合は作成される。既存ファイルを開くと、まずファイルを空にする x 書き込み用に開く。ファイルが存在しない場合は作成される。ファイルが存在する場合はFileExistsErrorが発生する a 書き込み用に開く。ファイルが存在しない場合は作成される。ファイルが存在する場合は末尾に追記する もう1つには次の文字のいずれかを使います。 文字意味 tテキストモード(デフォルト) bバイナリモード デフォルトの文字は省略することができますが、ここでの例ではすべて明示的に記載します。 open()関数の呼び出しが成功すると、ファイルオブジェクトが返されます。ファイルへの読み書きは、このファイルオブジェクトの関数を使って行います。 最後にファイルは閉じる必要があります。それにはファイルオブジェクトのclose()関数を使います。 書き込み関数でファイルへ書き込んでも、それがすぐにディスクへ書き込まれると考えてはいけません。close()関数を呼び出すと、書き込んだ内容がディスクへも書き込まれることが保証されます。 また、ファイルを開くとOSの限りあるリソースを使います。そのため必要なくなったらすぐにファイルを閉じるのがベストプラクティスです。 残りの引数encodingと引数newlineは後ほど説明します。 テキストファイルの入出力 テキストファイルは文字で構成されます。テキストには行があり、各行は改行コードで区切られます。そして文字列をテキストに保存するにはエンコードする必要があります。これらはバイナリファイルにはないテキストファイルの特徴です。 テキストファイルの入出力では、テキストモード(t)でファイルを開きます。 テキストファイルへの出力 テキストをファイルへ書き込む方法から見ていきましょう。テキストファイルへ書き込むにはモード「wt」、「xt」、「at」のいずれかでファイルを開きます。 いずれも存在しないファイルを開くと、新しくファイルが作成されます。これらの違いは既存のファイルを開くときです。「wt」なら既存のファイルをまず空にしてから書き込みます。「xt」なら例外FileExistsErrorが発生してオープンに失敗します。「at」ば既存のファイルの末尾から書き込みを始めます。 write()によるテキストファイルへの書き込み ファイルへ書き込むテキストとして次の文字列を使います。 >>> text = '''海が光る […]