ファイル読み書き | Python-izm

ファイル読み書き

Pythonでファイルの読み込み書き込みをしてみましょう。まずは読み込みからです。

ファイルの読み込み

作業ディレクトリにread.txtというファイル名で、下記内容のテキストファイルを用意します。

Pythonでファイルを読み込みましょう!

次は読み込みを行うコードを記述します。open関数を使用しますが、第二引数には読み込み(read)を示すrを渡します。

f = open('read.txt', 'r')

for row in f:
    print(row)

f.close()
Pythonでファイルを読み込みましょう!

非常に簡単ですね。次は書き込みを行いましょう。

ファイルに書き込み

ファイルへの書き込みも同様にopen関数を使用します。第二引数へ書き込み(write)を示すwを渡します。

f = open('write.txt', 'w')

f.write('Pythonでファイルに書き込みました!')

f.close()

以下のようなファイルが出力されます。

Pythonでファイルに書き込みました!

文字コードの指定

文字コードを指定してファイルの読み書きを行うこともできます。下記例では最初に用意したread.txtファイルの内容を、それぞれEUCUTF-8でファイル出力しています。
※Python 2系と3系で異なります。

Python 3系

fin_sjis = open('read.txt', 'r', encoding='shift_jis')
fout_euc = open('euc-jp.txt', 'w', encoding='euc_jp')
fout_utf = open('utf-8.txt', 'w', encoding='utf-8')

for row in fin_sjis:
    fout_euc.write(row)
    fout_utf.write(row)

fin_sjis.close()
fout_euc.close()
fout_utf.close()

Python 2系

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

import codecs

fin_sjis = codecs.open('read.txt', 'r', 'shift_jis')
fout_euc = codecs.open('euc-jp.txt', 'w', 'euc_jp')
fout_utf = codecs.open('utf-8.txt', 'w', 'utf-8')

for row in fin_sjis:
    fout_euc.write(row)
    fout_utf.write(row)

fin_sjis.close()
fout_euc.close()
fout_utf.close()