Python3 File write() メソッド
概要
write()このメソッドは、指定された文字列をファイルに書き込むために使用します。
ファイルが閉じられる前、またはバッファがフラッシュされる前は、文字列の内容はバッファに保存されているため、ファイルに書き込まれた内容を確認することはできません。
ファイルのオープンモードに b が含まれる場合、ファイルに内容を書き込むとき、str(引数)は encode メソッドで bytes 形式に変換する必要があります。そうしないと、TypeError: a bytes-like object is required, not 'str' というエラーが発生します。
構文
write() メソッドの構文は次のとおりです:
fileObject.write( [ str ])
引数
-
fileObject-- ファイルオブジェクト。通常は open() 関数でファイルを開いた後に取得します。
-
str-- ファイルに書き込む文字列。
write() メソッドは、指定された文字列をファイルに書き込みます。書き込み位置は、ファイルの現在のポインタ位置に依存します:
ファイルが追加モード(
"a"或"a+")で開かれている場合、書き込まれた内容はファイルの末尾に追加されます。ファイルが読み書きモード(
"r+"或"w+")で開かれている場合、書き込まれた内容は現在のファイルポインタの位置から始まり、元の内容を上書きします。
戻り値
戻り値は、書き込まれた文字の長さです。
例
ファイル サンプル.txt の内容は次のとおりです:
1:www.example.com 2:www.example.com 3:www.example.com 4:www.example.com 5:www.example.com
次の例は、write() メソッドの使用法を示しています:
例
# with 文を使用してファイルを開き、ファイルが正しく閉じられるようにします
with open("サンプル.txt", "r+") as fo:
print("ファイル名: ", fo.name)
# ファイルの末尾に1行書き込む
fo.seek(0, 2) # ファイルポインタをファイルの末尾に移動する
fo.write("6:www.example.com\n") # 内容を書き込み、改行を追加する
# ファイルのすべての内容を読み取る
fo.seek(0) # ファイルポインタをファイルの先頭に移動する
for index, line in enumerate(fo):
print("ファイル行番号 %d - %s" % (index, line.strip()))
上記の例の出力結果は次のとおりです:
文件行号 0 - 1:www.example.com 文件行号 1 - 2:www.example.com 文件行号 2 - 3:www.example.com 文件行号 3 - 4:www.example.com 文件行号 4 - 5:www.example.com 文件行号 5 - 6:www.example.com
ファイルの内容を確認:
$ cat サンプル.txt 1:www.example.com 2:www.example.com 3:www.example.com 4:www.example.com 5:www.example.com 6:www.example.com
注意事項
ファイルモード:
ファイルが読み取り専用モード(
"r")で開かれている場合、呼び出すとwrite()例外が発生しio.UnsupportedOperationます。ファイルが書き込みモード(
"w"或"w+")で開かれている場合、ファイルの内容はクリアされ、その後新しい内容が書き込まれます。ファイルが追加モード(
"a"或"a+")で開かれている場合、書き込まれた内容はファイルの末尾に追加されます。
ファイルポインタ:
書き込み操作は、現在のファイルポインタの位置から開始されます。ファイルの先頭や特定の位置から書き込む必要がある場合は、
seek()メソッドを使用してファイルポインタを移動できます。
改行文字:
write()メソッドは自動的に改行文字を追加しません。改行が必要な場合は、文字列内に明示的に追加する必要があります。\n。
戻り値:
write()メソッドは書き込まれた文字数を返します。書き込みに失敗すると、例外が発生する場合があります。
その他の拡張
Python3 File(ファイル) メソッド