Pythonでファイルの書き込みを行う:write, writelines
ファイルへ書き込むにはwrite関数やwritelines関数を使用します。
write関数でファイルに書き込みをする
write関数の書式は以下の通りです。
対象のファイルオブジェクト.write(書き込む文字列)
write関数を使用したサンプル
ファイルを開くのにはopen関数を利用します。書き込みの場合は第2引数に「’w’」を渡してファイルを書き込みモードで開いておくのを忘れないようにしてください。
# -*- coding: utf-8 -*-
# 書き込む文字列
text = "The quick brown fox jumps over the lazy dog."
# ファイルを書き込みモードで開く
with open('sample.txt', 'w') as f:
# 書き込み
f.write(text)
sample.txtの中身を確認するとtext変数の文字列が書き込まれていることが確認できます。
$ cat sample.txt The quick brown fox jumps over the lazy dog.
writelines関数で配列の文字列をファイルに書き込む
writelines関数では配列を引数に渡すと、配列内の文字列をファイルに書き込むことができます。使い方はwrite関数とほぼ同じです。
writelines関数の書式は以下の通りです。
対象のファイルオブジェクト.writelines(書き込む文字列の配列)
writelines関数を使用したサンプル
# -*- coding: utf-8 -*-
# 書き込む文字列の配列
text = [
"Shall I compare thee to a summer's day? ",
"Thou art more lovely and more temperate. ",
"Rough winds do shake the darling buds of May, ",
"And summer's lease hath all too short a date. ",
"Sometime too hot the eye of heaven shines, ",
"And often is his gold complexion dimm'd; ",
"And every fair from fair sometime declines, ",
"By chance or nature's changing course untrimm'd; ",
"But thy eternal summer shall not fade",
"Nor lose possession of that fair thou owest; ",
"Nor shall Death brag thou wander'st in his shade, ",
"When in eternal lines to time thou growest: ",
"So long as men can breathe or eyes can see, ",
"So long lives this and this gives life to thee."
]
# ファイルを書き込みモードで開く
with open('sample.txt', 'w') as f:
# 書き込み
f.writelines(text)
sample.txtの中身を確認するとtext変数の配列の中身が書き込まれていることが確認できます。
$ cat sample.txt Shall I compare thee to a summer's day? Thou art more lovely and more temperate. Rough winds do shake the darling buds of May, And summer's lease hath all too short a date. Sometime too hot the eye of heaven shines, And often is his gold complexion dimm'd; And every fair from fair sometime declines, By chance or nature's changing course untrimm'd; But thy eternal summer shall not fadeNor lose possession of that fair thou owest; Nor shall Death brag thou wander'st in his shade, When in eternal lines to time thou growest: So long as men can breathe or eyes can see, So long lives this and this gives life to thee.