Skip to content

ファイル操作#

一行ずつファイルを読み込む#

readlines() メソッドは便利だが、一度にファイルの情報を読み込むため、 メモリの消費量が多い。そういった時は以下のように一行ずつファイルを読み込んで処理するとよい。

with open('./test.txt') as f:
    for line in f:
       print line

ファイル内の文字列置換#

file_name = "sample.txt"

with open(file_name, encoding="cp932") as f:
    data_lines = f.read()

# 文字列置換
data_lines = data_lines.replace("グーグルマップ", "Google マップ ")

# 同じファイル名で保存
with open(file_name, mode="w", encoding="cp932") as f:
    f.write(data_lines)
import fileinput

file_name = "sample.txt"

with fileinput.FileInput(file_name, inplace=True, backup=".bak") as f:
    for line in f:
        print(line.replace("グーグルマップ", "Google マップ "), end="")

Warning

fileinputはエンコードを指定できないためOSに依存する