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

初心者向けにPythonでファイルに書き込みする方法について現役エンジニアが解説しています。Pythonではファイルを開くopenメソッドと閉じるcloseメソッドを使います。ファイルを開く場合は、モードと文字コードに注意しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonでファイルに書き込みする方法について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

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

大石ゆかり

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

田島悠介

Pythonでファイルに書き込みする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ファイルを読み書きする方法

データを読み込んだりプログラムの結果を書き込んだりと、プログラミングの際に多く行われるのがテキストファイルの読み書きです。

Pythonでは標準でテキストファイルを読み書きするメソッドが用意されています。

この記事ではPythonでテキストファイルを読み書きする方法について確認していきます。

 

openメソッドの基本

テキストファイルを読み書きする際に共通で使用するのがopenメソッドとcloseメソッドです。

openメソッドとcloseメソッドは以下のように使用します。
 

ファイルオブジェクト = open(ファイル名, "モード", encoding = "文字コード")
# この間にファイルの読み込み、または書き込みを行う処理を記述する
ファイルオブジェクト.close()

 
openメソッドの引数については以下のとおりです。

  • ファイル名:読み込みまたは書き込みを行うファイル名を指定します
  • モード:
    • “w”:書き込み(新規作成。既に同名のファイルが存在すれば上書き)
    • “x”:書き込み(新規作成。既に同名のファイルが存在すればエラー)
    • “a”:書き込み(追記。既に同名のファイルが存在すれば末尾に追記)
    • “r”:読み込み
  • encoding:文字コードを指定します。通常は「”utf_8″」を指定します。

 

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

実際に書いてみよう

今回のサンプルプログラムでは、ファイルの書き込みと読み込みの方法について確認します。

まずはファイルの書き込みについては以下のとおりです。
 

# ファイルの書き込み
file = "test.txt"

fileobj = open(file, "w", encoding="utf_8")
for i in range(1,10):
  fileobj.write("*" * i + "\n")
fileobj.close()

 
実行結果は以下のようになります。

test.txtというファイルが作成され、ファイルの内容が以下のようになっていることが確認できます。
 

 
次はファイルを読み込む方法について確認しましょう。ファイルの内容を変数dataに取得してprint関数で表示しています。
 

# ファイルの読み込み
fileobj = open(file, "r", encoding = "utf_8")
data = fileobj.read()
fileobj.close()
print(data)

 
実行結果は以下のようになります。
 

*
**
***
****
*****
******
*******
********
*********

 

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。