さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

Python入門 ファイルの読み書きを行ってみよう

f:id:y_saiki:20171024233602j:plain

目次

1.環境

  • Debian 7.11
  • Python 2.7.3

2.ファイルの読み書きについて

pythonでファイルを読み書きを行うことは非常に簡単です。 open()を呼び出して、第一引数にファイル名、第二引数に読み込みなら「r」、書き込みなら「w」を指定すればできます。 そして、読み込みならばファイルオブジェクトをループで回せばファイル内の内容を1行づつ処理できます。 また、書き込みであればそのファイルオブジェクトからwrite()で文字列をファイルに書き込むことができます。

3.ファイルを読み込んで内容を表示してみよう

では、読み込みから順にみていきましょう。

3-1.サンプルコード

#_*_ coding: utf-8 _*_

file = open('sample_file', 'r')

for i in file:
  print i

file.close()

3-2.読み込み対象ファイル内容

sample_file

python is read file

3-3.実行結果

root@dev:~/tmp/python# python read_file.py
python is read file

4.1行ファイルを読み込んでみよう

4-1.サンプルコード

#_*_ coding: utf-8 _*_

file = open('sample_file', 'r')
row = file.readline()

print row

file.close()

4-2.読み込み対象ファイル内容

python is read file1
python is read file2
python is read file3

4-3.実行結果

root@dev:~/tmp/python# python read_file.py
python is read file1

1行づつ読み込んでいく場合はreadline()を利用します。 ファイルの量などが大きいとすべて読み込んでから処理するには時間がかかってしまうため1行づつ読み込んで処理した方が効率が良いです。

補足として、1行筒読み込んで処理させる場合は以下のように書きます。

#_*_ coding: utf-8 _*_

file = open('sample_file', 'r')
row = file.readline()

while row:
  print row
  row = file.readline()

file.close()

5.文字列をファイルに書き込んでみよう

5-1.サンプルコード

#_*_ coding: utf-8 _*_

file = open('sample_writefile', 'w')

file.write('ファイルに書き込みました。')

file.close()

5-2.実行結果

実行後、出力先のディレクトリにsample_writefileが作成されますので開いてみると以下の内容が書き込まれているはずです。

ファイルに書き込みました。

6.追加書き込みを行ってみよう

6-1.サンプルコード

5-1.のサンプルコードのopen()の第二引数に渡したモードを変更するだけで、追加書き込みが可能です。 「w」から「a」に変更します。

「a」モードは追加書き込みモードで、ファイルが存在しない時は新規作成でファイルが作られます。

#_*_ coding: utf-8 _*_

file = open('sample_writefile', 'a')

file.write('ファイルに書き込みました。\n')

file.close()

6-2.実行結果

以下は上記プログラムを2回実行した結果になります。

ファイルに書き込みました。
ファイルに書き込みました。

以上