Pythonでファイルに追記する方法【初心者向け】現役エンジニアが解説

初心者向けにPythonでファイルに追記する方法について解説しています。既存のファイルに追記を行う場合にはopen関数を使用します。最初に基本の書き方を学び、次に実際にファイルに文字列を追加してみましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

監修してくれたメンター

清水 源一郎

企業勤務の研究者として、機械学習やデータサイエンスを活用した製品開発を行っている。
テックアカデミーでは、Pythonコース、AIコース、データサイエンスコースを担当。

Pythonでファイルに追記する方法について解説します。

ファイルの連結やログの記録で、既存ファイルの末尾に追記したいケースがあります。
この記事では、Pythonでファイルに追記する方法を解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ファイルに追記する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ファイルを操作する方法

Pythonでファイルを操作するには、組み込み関数openを使います。

open関数では以下の引数を指定します。

  • 1番目の引数: 操作対象のファイルパス
  • 2番目の引数: 操作モード

open関数の戻り値はファイルオブジェクトです。
ファイルオブジェクトに対し、read(読取)やwrite(書込)操作を行います。

ファイルパスでは、絶対パスと相対パスの両方を使えます。

 

モードは以下を指定します。
省略した場合は’r'(読取)モードになります。

指定する文字 モード
r 読取
w 上書
a 追記

詳細は公式の文書を確認してください。

 

また、人がファイルを操作した後にファイルを閉じるように、ファイルオブジェクトは、操作が終わった後にcloseメソッドを使って閉じる必要があります。

closeメソッドを実行しないと、開かれているファイルに他のプログラムがアクセスできなくなるなどの問題が発生します。
また、OSによって同時に開くことができるファイルの数が定められているため、ファイルがcloseされないまま残っていると、エラーにつながります。

 

ファイルオブジェクトの操作

ファイルオブジェクトの操作には、主に2通りの方法があります。

1つめはwith文を使うことで、closeを使わなくても、インデントで指定されたwithブロックの処理を終えた際に自動でファイルオブジェクトをクローズできます。

2つめはtry-finallyを用いることで、処理中でエラーが発生した場合でもファイルオブジェクトをクローズできます。

ファイルオブジェクトをクローズし忘れにくく、より簡潔に書けるため、前者のwith文を用いた方法をおすすめします。

with文を使う方法

with open('filepath') as f:
    print(f.read())

try-finally文を使う方法

f = open('filepath')
try:
    print(f.read())
finally:
    f.close()

 

ファイルに追記する方法

ファイルに追記するには、モードで’a’を指定します。

with open('filepath', 'a') as f:
    print('aaa', file=f)

ファイルが存在する場合には、ファイルの末尾に追記し、ファイルが存在しない場合には、ファイルが新規に作成されます。

print 関数は、デフォルトでは標準出力である画面に対して第1引数を出力します。
しかし、このようにfile引数に出力先を指定することで、画面ではなくファイルに対して出力することもできます。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際にファイルに追記してみよう

ファイルsample.txtが既存とします。
sample.txtの内容は「あいうえお」です。

以下のコードは、このファイルに文字列「かきくけこ」を追記します。

サンプルコード

print('---追記前---')
with open('sample.txt', 'r') as f:
    print(f.read())

print('---追記中---')
with open('sample.txt', 'a') as f:
    print('かきくけこ', file=f)

print('---追記後---')
with open('sample.txt', 'r') as f:
    print(f.read())

 

実行結果

—追記前—
あいうえお

—追記中—
—追記後—
あいうえお
かきくけこ

 

解説

2行目でファイルを読取モードで開き、内容を表示します。
「あいうえお」と表示されます。

6行目でファイルを追記モードで開き、7行目で文字列を追記します。

再度、10行目でファイルを読取モードで開き、内容を表示します。
「あいうえお」「かきくけこ」が表示されます。

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

テックアカデミーでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。