【Python】ファイルの読み込み書き込みをやってみよう

  • 2018年9月6日
  • 2020年4月29日
  • Python
Pythonを独学で学びたい方は、UdemyのPythonコースがおすすめです。シリコンバレーの一流エンジニアが約300の動画を使って、Pythonを網羅的に教えてくれます。プログラミングスクールの10分の1以下の値段で学べるので、コスパも良しです。
※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

 

 

今回はPythonでファイル操作を行っていきます。

この記事を読めば、ファイルの開閉、読み込み、書き込みなどファイルを扱う上で必要なことを学べるようになっているので是非一読してください。

 

 

スポンサーリンク

ファイル操作の基本的な流れ

Pythonでファイルを読み込んだり、ファイルに書き込みをしたりする前にファイルを開く必要があります。

以下ではその流れを2つの方法で説明します。

 

open関数のみでファイルを開く

pythonの組み込み関数(標準で使用できる関数)であるopen関数を使うと、ファイルを開くことができます。

以下で例を見ていきましょう。

 

f = open('file.txt', mode )
#ファイルを操作
f.close()

1行目ではopen関数を使い、その引数(かっこの中身)でファイル名とモードを指定しています。

モードについては後から説明します。

そして、ファイルは開いたら最後には閉じる必要があるので、ファイルを操作した後にはしっかりclose()で閉じてあげます。

 

スポンサーリンク

with文を使う

ファイルを開く方法としてもう1つwith文を使うという方法があります。

with文は基本的に以下のように記述します。

 

with open('file.txt', mode) as f:
    ファイル操作

withの後にファイルを開くためのopen関数を書き、asの後にファイルオブジェクトの名前、fを書きます。

そしてwith文の中にはファイル操作の文を書きます。

with文ではファイル操作をした後、勝手にファイルが閉じられるので、ファイルを閉じ忘れることがないというメリットがあります。

 

 

open関数のmode(モード)について

open関数では上でも書きましたが、第2引数にモードをとって、ファイルのタイプやどのように操作するのかを決めることができます。

以下ではそのモードについて表にまとめました。

 

mode(モード) 意味
r ファイルの読み出しをする。
w ファイルに書き込みをする。ファイルが存在しない時は新しく作り、存在する場合は内容が上書きされる。
x ファイルに書き込みをするが、ファイルが既に存在する場合は書き込みをしない。
a ファイルが存在する場合にその内容の末尾に追加で書き込みをする。(追記)

 

xのようなモードを使うことで、中身のあるファイルを上書きで消してしまうということも避けることができます。

 

 

スポンサーリンク

実際にファイル操作をしてみよう

それでは実際にファイル操作をしてみましょう。以下で順番に説明していきます。

 

ファイルに書き込みをする(上書き編)

ファイルに書き込みする際には、open関数の第2引数にモードとしてwをとってあげます。

そして実際に書き込みしたい文字列をwrite関数の引数に渡してあげます。

以下で例を見ていきましょう。

 

file1 = open('file.txt','w')
sentence = '''かえるぴょこぴょこ3ぴょこぴょこ
合わせてぴょこぴょこ6ぴょこぴょこ'''
file1.write(sentence)
file1.close()

1行目ではopen関数の引数でwを渡しているので、ファイルオブジェクトfile1は書き込み専用のオブジェクトになります。

書き込み専用オブジェクトなのでfile1は読み込み用には使えません。

 

最後の行ではfile1にwrite関数を適用して2,3行目で指定したsentenceを書き込みしています。

これでfile.txtにはsentenceが書き込まれました。

 

ファイルの読み出しをする

ファイルの読み出しをする時はread関数を使っていきます。

モードの説明のところにあるようにrは読み出しを表しますが、open関数はデフォルトでrになっているので、特に第2引数を指定する必要はありません。

以下で例を見ていきましょう。

 

file2 = open('file.txt')
text = file2.read()
file2.close()
print(text)

#以下は出力
かえるぴょこぴょこ3ぴょこぴょこ
合わせてぴょこぴょこ6ぴょこぴょこ

open関数でファイル名しか指定してないので、ここでは読み出し専用のファイルオブジェクト、file2が作られます。

file2は読み出し専用のファイルオブジェクトなのでこのオブジェクトに書き込みをすることはできません。

 

2行目では、read関数でfile2を読み出し、それにtextという名前を付けます。

textを出力してあげると、file.txtの内容がしっかり読み込めていることが分かります。

 

ファイルに書き込みをする(追記)

ファイルに書き込みをしたいが、上書きではなくて、現在ある内容にプラスで書き足したいということもあると思います。

そんな時はモードにaを指定してあげます。

以下で例を見ていきましょう。

 

file3 = open('file.txt', 'a')
file3.write(sentence)
file3.close()

open関数で書き込み(追記)専用のオブジェクトを作ってあげて、それにもう一度sentenceを書き込みます。

何度も言いますが、file3は書き込み専用のファイルオブジェクトなのでこれを使って読み出しをすることはできません。

 

以上の操作により追記がされたので、file.txtには同じ文が2回書かれているはずです。

以下でもう一度読み込んで見てみましょう。

 

file4 = open('file.txt')
text2 = file4.read()
file4.close()
print(text2)

#以下は出力
かえるぴょこぴょこ3ぴょこぴょこ
合わせてぴょこぴょこ6ぴょこぴょこかえるぴょこぴょこ3ぴょこぴょこ
合わせてぴょこぴょこ6ぴょこぴょこ

このようにしっかりと2回書き込まれているのが確認できました。

このように上書きだけではなく、追記もできるので覚えておいてください。

 

 

まとめ

今回は簡単な操作ではありましたが、Pythonでファイルを扱う上で基礎的なことを学びました。

ファイルの開き方、読み書き、閉じ方などファイルを扱う上で必ずと言っていいほど必要なことなので、しっかり覚えていってください。

 

今後も定期的にコンピュータ系の記事を発信していくので是非、興味のある人はブックマークして見にきてくれると嬉しいです!!

 

 

Pythonを独学で学びたい方は、UdemyのPythonコースがおすすめです。シリコンバレーの一流エンジニアが約300の動画を使って、Pythonを網羅的に教えてくれます。プログラミングスクールの10分の1以下の値段で学べるので、コスパも良しです。
※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
スポンサーリンク