- 公開日:2017-2-11
- プロナビTOP / プログラミング初心者向け技術系ノウハウ・まとめ

プログラミングを行っているとテキストファイルの文字列を読み込んだり、逆にプログラムで扱っている文字列をファイルに書き込んだりします。そういったファイルの読み書きはPythonでも行うことができます。
今回はpythonでファイルの読み書きをする方法を説明します。
目次
ファイルのオープン
ファイルの読み書きを行うには、まずファイルを開いてファイルの中身にアクセスできる状態にする必要があります。ファイルをオープンするにはopen()を使います。
|
1 |
変数 = open(‘オープンするファイルのパス’, ‘オープンモード’) |
ファイルのオープンモードには以下の6つがあり、ファイルをどう扱うかによって使い分けます。
| r | 読み込みモードで開く。ファイルが存在しない時はエラーになる |
|---|---|
| w | 書き込みモードで開く。ファイルが存在しない時は新規作成される |
| a | 追加書き込みモードで開く。ファイルが存在しない時は新規作成される |
| r+ | 読み書き両対応で開く。ファイルが存在しない時はエラーになる |
| w+ | 読み書き両対応で開く。ファイルが存在しない時は新規作成される |
| a+ | 追加書き込み・読み書き両対応で開く。ファイルが存在しない時は新規作成される |
ファイルの読み込み
ファイル読み込みではテキストファイルなどの中身を読み込みます。ファイルをオープンする際には「r」もしくは「r+」で開きましょう。また、ファイルの読み込みを行う方法は3つあり、それぞれによって使う関数も異なります。
readですべてを文字列として読み込む
read()を使うとファイルの中身すべてを1つの文字列として読み込むことができます。例として、以下のtest.txtを読み込むと以下のようになります。
test.txt
|
1 2 |
this is test text |
|
1 2 3 4 |
file = open(‘test.txt’, ‘r’) #読み込みモードでオープン string = file.read() #readですべて読み込む print(string) |
実行結果
text
readlineで1行だけ文字列として読み込む
readlineを使うと1行だけ文字列として読み込みます。ただし、読み込んだ文字列は改行文字も含みます。
|
1 2 3 4 5 6 |
file = open(‘test.txt’, ‘r’) #読み込みモードでオープン string = file.readline() #readlineで1行だけ読み込む while string: print(string) string = file.readline() |
実行結果
text
readlinesですべてを文字列のリストとして読み込む
readlinesを使うとすべての文字列を1つのリストとして読み込みます。もっと詳しく言うと、1行ずつ読み込んだあとにリストへ順番に追加していきます。
|
1 2 3 4 |
file = open(‘test.txt’, ‘r’) #読み込みモードでオープン string = file.readlines() #readlinesでリストとして読み込む print(string) |
実行結果
ファイルへの書き込み
書き込み
ファイル書き込みではプログラム中で扱っている文字列をファイルに書き込みます。書き込む場合はファイルを「w」もしくは「w+」で開きます。文字列の書き込みにはwrite()を使います。
|
1 2 3 4 |
file = open(‘test.txt’, ‘w’) #書き込みモードでオープン string = ‘python output string’ file.write(string) |
実行結果(test.txt)
write()の引数に渡された文字列がファイルに書き込まれます。リストやタプルなどを書き込む場合はwritelines()を使います。
|
1 2 3 4 |
file = open(‘test.txt’, ‘w’) #書き込みモードでオープン string_list = [‘python’, ‘ ‘, ‘output’, ‘ ‘, ‘string’] file.writelines(string_list) |
実行結果(test.txt)
python output string
追加書き込み
書き込みではファイルの中身がすべて上書きされます。今あるファイルに追加で書き込みを行う場合はファイルをオープンする際に「a」もしくは「a+」でオープンしましょう。そうすることで、ファイルを追加書き込みモードで開くことができます。書き込むための関数自体は通常の書き込みと同じです。
|
1 2 3 4 |
file = open(‘test.txt’, ‘a’) #追加書き込みモードでオープン string_list = [‘this’, ‘ ‘, ‘is’, ‘ ‘, ‘test’] file.writelines(string_list) |
実行結果(test.txt)
さきほど例で文字列を書き込んだtest.txtに追加で文字列を書き込みました。ただし、書き込みモードでは終端に改行文字が自動では付かないため、このように元からある文字のすぐ後ろにくっついてしまうので気をつけましょう。
ファイルのクローズ
ファイルを開くと、そのファイルのためにメモリを消費します。ファイルを開きっぱなしだとメモリを消費したままになるので、使わなくなったファイルはしっかりと閉じるようにしましょう。ファイルを閉じるにはclose()を使います。
|
1 2 |
file = open(‘test.txt’, ‘a’) #ファイルをオープン file.close() #ファイルをクローズ |
【おすすめ記事】
➡Pythonの本・参考書の評判
➡【無料で使える】Pythonを勉強できる学習サイト7つ
➡【Python入門】JSON形式データの扱い方
➡Pythonを使うなら知っておくべき!便利なライブラリ13選



































