Python テキストファイルの入出力

テキストファイルの準備

ローカルドライブを使用した場合

スクリーンショット 2020-06-24 10.07.06

Google Driveを使用した場合

スクリーンショット 2020-06-24 10.08.18

以下、Google Driveを使用した場合について記述する。

open関数によるファイルの読み込み

テキストファイルからデータを読み込むには、Pythonの組み込み関数のopen関数を使う。open関数は指定されたファイルを開いてファイルオブジェクトを返す。

ファイルのパスは相対パス、絶対パスのどちらでも記述できる。 ファイルのエンコーディングはencoding引数で指定する。デフォルトのエンコーディングはプラットフォームによって異なるので、必ずencoding引数を指定するようにする。

スクリーンショット 2020-06-24 10.11.58

ファイルを開く際のモードをmode引数で指定できる。読み書き両方できるモードには+記号が付く。モードの文字の前にbを付けると、バイナリファイルを読み書きするモードでファイルが開かれる。

スクリーンショット 2020-06-24 10.12.42

for文を使うことで、ファイルの文字列を1行ずつ取得できる。print関数はデフォルトでは出力の後に改行を入れる。end引数に空文字列を指定すると改行がなくなる。

スクリーンショット 2020-06-24 10.13.15

作業が終わったら必ずファイルオブジェクトを開放する。ファイルオブジェクトのcloseメソッドを呼び出すとファイルが閉じられ、ファイルオブジェクトが開放される。

スクリーンショット 2020-06-24 10.13.46

ファイルオブジェクトにはファイルの内容を取得するメソッドも用意されている。ファイルオブジェクトのreadメソッドを使うと、ファイルの内容全体を1つの文字列として受け取れる。readlinesメソッドはファイルの内容を1行ごとに分割し、リストとして返す。

open関数によるファイルの書き込み

ファイルに書き込む際には、書き込み用のモードでファイルを開く。writeメソッドで指定の文字列をファイルに書き込める。

スクリーンショット 2020-06-24 10.15.12

ファイルオブジェクトはカーソルの位置のような、ファイル中の現在位置に該当する情報を持っている。f.seek(0)は現在位置をファイルの先頭に戻す命令である。

スクリーンショット 2020-06-24 10.15.46

with文

実際にopen関数を使用する場合にはwith文という複合文を使う。with文のブロックの処理から抜ける時点で自動的にcloseメソッドが呼ばれ、ファイルが閉じられる。

スクリーンショット 2020-06-24 10.16.33


いいなと思ったら応援しよう!