python

【python】ファイル読み込み・ファイル書き込みの方法【→プログラム初心者向け】

12月 2, 2019

how to read and write file python
プログラム女子
テキストファイルを読み込んだ文字を表示すると、無駄に改行されるんですが。。。
それは、「抽出した文字列の改行」と「表示するときの関数の改行」が同時の効いているからだよ。今回は、テキストファイルの読み込みと書き込みを基本的なところから見ていこう。
Tommy

この記事で分かること

  • pythonプログラムにファイルを読み込む方法が分かる
  • pythonプログラムでファイルに書き込む方法が分かる

pythonでファイル読み込み・ファイル書き込みの方法の概要

summary of how to read and write file

この記事では、テキストファイルへの書き込み方法と、読み込み方法について、pythonで文字列を扱う方法を、サンプルプログラムを解説しながら説明します。

読み込みでは、テキストファイルを1行ずつ読み込む方法を使い、その時の「改行」における注意点を説明します。

ファイル読み込み・ファイル書き込みのpythonの環境

environment of how to read and write file

pythonでファイルの読み書き方法の前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

レンタルサーバなどのlinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

ファイル読み込み・ファイル書き込みのサンプルプログラム

sample program about how to read and write file

実際にtest.txtというテキストファイルに文字列を書き込む方法と、pythonプログラム内へ読み込むサンプルプログラムを記載します。

ファイルの書き込み

ファイルの書き込みでは、test.txtというテキストファイルを書き込みモードでオープンして、その後、「test1\ntest2\ntest3\n」という文字列を書き込んでいます。「\n」は改行を表します。openによって得られたファイルオブジェクトは最後にはcloseしましょう。

def write_file():

	# 出力ファイルを生成する/オープンする
	file = open('test.txt', 'w')

	# ファイルへの書き込み
	write_contents = 'test1\ntest2\ntest3\n'

	# ファイルへの書き込み
	file.writelines(write_contents)

	# Close file
	file.close()

  1. 関数「write_file」の定義の宣言する
  2. 「text.txt」をオープンしてファイル変数「file」に書き込みモード「w」でファイルハンドラを格納する
  3. 変数「write_contents」を「test1\ntest2\ntest3\n」という文字列で初期化する
  4. 変数「write_contents」の内容を、ファイルハンドラの関数「writelines」を使って1行ずつ書き込む
  5. ファイルハンドラを閉じる

ファイルの読み込み

次は、上記で、作成したtest.txtから文字列をpythonプログラム内に読み込むサンプルプログラムです。

openによって取得したファイルオブジェクトに対して、readlineを呼ぶことによって、1行ずつの文字列がファイル行数文入ったリストlinesを得ることができます。最後にlinesを1つずつ繰り返し表示することで、linesの中身を表示しています。

def read_file():

	# ファイルオープン
    with open('test.txt','r') as file:
		lines = file.readlines()

	# 1行ずつ読みだす
    for line in lines:
		print(line)

  1. 関数「read_file」の定義の宣言する
  2. 「text.txt」をオープンしてファイル変数「file」に読み込みモード「r」でファイルハンドラを格納する
  3. 変数「lines」に、ファイルハンドラの関数「readlines」を使って1行ずつ読み込む
  4. 変数「lines」を1つずつ変数「line」に入れて、for文で繰り返す
  5. 「line」を表示する

mainでの処理

ここでは、Mainの処理を定義します。さきほど定義した2つのメソッドwrite_file()とread_file()を呼び出しています。

if __name__ == '__main__':

	write_file()
	read_file()

  1. 関数「write_file」を実行する
  2. 関数「read_file」を実行する

結果

文字列「test1\ntest2\ntest3\n」を表示した結果になります。1行目は「test1\n」のPrint文の表示になりますが、print文自体に改行することになるので、2回改行されたような結果になっています。

$ python test.py
test1

test2

test3

-python
-

© 2021 Tommy's blog Powered by AFFINGER5