0Pricing
Python Academy · レッスン

ファイルへの書き込みと追記

新しいデータを書き込み、既存のファイルに安全に追記します。

「ファイルへの書き込みと追記」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

概要

ファイルへの書き込みと追記により、プログラムの実行間でデータを保持できます。

書き込みモード'w'

open('out.txt', 'w') はファイルを作成します(存在する場合は内容を切り詰めます)。f.write('Hello') は文字列を書き込みます。
# with open('out.txt', 'w') as f:
#     f.write('Hello, World!')
print('write mode demo')

writelines()

f.writelines(list_of_strings) はリスト内の各文字列を書き込みます。改行は自動的に追加されません。
lines = ['line1\n', 'line2\n']
# with open('out.txt', 'w') as f:
#     f.writelines(lines)
print('writelines demo')

追記モード'a'

open('log.txt', 'a') は追記用にファイルを開きます。既存の内容を切り詰めず、新しいデータを末尾に追加します。
# with open('log.txt', 'a') as f:
#     f.write('new entry\n')
print('append mode demo')

write() の改行

write() は自動的に改行を追加しません。明示的に \n を含める必要があります: f.write('line\n')
# with open('out.txt', 'w') as f:
#     f.write('first line\n')
#     f.write('second line\n')
print('newline demo')

読み書きモード「r+」

open(f,'r+') は読み込みと書き込みの両方で開きます。ポインターは先頭から始まるため、書き込みによって既存の内容が上書きされます。
# with open('out.txt', 'r+') as f:
#     f.seek(0, 2)  # go to end
#     f.write('appended')
print('r+ demo')

バッファーのフラッシュ

f.flush() は、バッファーに蓄積されたデータをディスクへ強制的に書き込みます。リアルタイムで出力したいログファイルに便利です。
# with open('log.txt', 'a') as f:
#     f.write('event\n')
#     f.flush()
print('flush demo')

ファイルへの print()

print('text', file=f) は、print の書式設定を使ってファイルに書き込みます(改行が追加されます)。write() の便利な代替手段です。
# with open('out.txt', 'w') as f:
#     print('Hello', file=f)
print('print-to-file demo')

アトミック書き込みパターン

一時ファイルに書き込んでから、最終的なパスへ名前を変更します。これにより、書き込み途中のデータによって対象ファイルが破損するのを防げます。
import tempfile, os
# with tempfile.NamedTemporaryFile('w', delete=False) as f:
#     f.write(data); tmp = f.name
# os.replace(tmp, 'out.txt')
print('atomic write demo')

JSON のファイルへの書き込み

import json; json.dump(obj, f, indent=2) は、Python のデータを整形して JSON ファイルにシリアライズします。
import json
data = {'name': 'Alice', 'age': 30}
# with open('data.json', 'w') as f:
#     json.dump(data, f, indent=2)
print(json.dumps(data, indent=2))

バイナリ書き込みモード「wb」

open('img.bin', 'wb') はバイナリ書き込み用に開きます。bytes オブジェクトを書き込んでください: f.write(b'\x00\xff')
# with open('out.bin', 'wb') as f:
#     f.write(bytes([0, 255, 128]))
print('binary write demo')

クイックチェック

モード 'w' で既存のファイルを開くと、そのファイルはどうなりますか?

まとめ

モード 'w' は内容を切り詰め、'a' は追記し、'r+' は読み書きを行います。write() では \n を明示的に使用してください。print(file=f) は便利な代替手段です。リアルタイムのログにはフラッシュを使用してください。

次へ進みましょう

よくできました。次のレッスンに進んで、学習を続けましょう。

よくある質問

「ファイルへの書き込みと追記」レッスンは無料ですか?

はい。「ファイルへの書き込みと追記」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「ファイルへの書き込みと追記」で何を学びますか?

新しいデータを書き込み、既存のファイルに安全に追記します。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「ファイルへの書き込みと追記」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルの開き方と読み取り方
  2. ファイルへの書き込みと追記
  3. ファイル操作で with 文を使う
  4. pathlib によるファイルパス操作
← Python Academyに戻る