Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでテキストファイルを読み書きする方法!基本モードとサンプルコードを徹底解説

他のプログラミング言語と同様に、Pythonにもファイルの読み取り・書き込み・アクセスを行うための組み込み関数が用意されています。Pythonが主に扱うファイルには2種類あります。それは「テキストファイル」と「バイナリファイル」です。

テキストファイルでは、各行の末尾が特殊文字「\n」(EOL:End Of Line、改行文字)で終わります。一方、バイナリファイルには行末文字は存在せず、内容をビット列(bit stream)に変換して保存します。

この記事では、テキストファイルの基本的な操作方法について詳しく解説していきます。

ファイルアクセスモード一覧

番号 モードと説明
1

r

読み取り専用モードです。テキストファイルを読み込むために開きます。ファイルが存在しない場合はI/Oエラーが発生します。

2

r+

読み取りと書き込みの両方が可能なモードです。ファイルが存在しない場合にはI/Oエラーが発生します。

3

w

書き込み専用モードです。ファイルが存在しない場合は新しく作成してから書き込みを開始します。すでにファイルが存在する場合は、中身をすべて消去して先頭から書き込みます。

4

w+

書き込みと読み取りの両方が可能なモードです。ファイルが存在しない場合は作成され、存在する場合は既存のデータが上書きされます。

5

a

追記(append)モードです。ファイルの末尾にデータを書き込みます。

6

a+

追記と読み取りの両方が可能なモードです。データの追加と読み出しのどちらも行えます。

それでは、writelines()メソッドとwrite()メソッドを使って、実際にファイルへ書き込む方法を見ていきましょう。

書き込みのサンプルコード

#空のファイルを作成し、複数行を書き込む
class="notranslate">line1 = 'This is first line. \n'
lines = ['This is another line to store into file.\n',
   'The Third Line for the file.\n',
   'Another line... !@#$%^&*()_+.\n',
   'End Line']
#書き込みモードでファイルを開く
my_file = open('file_read_write.txt', 'w')
my_file.write(line1)
my_file.writelines(lines) #複数行をまとめて書き込む
my_file.close()
print('Writing Complete')

実行結果

Writing Complete

行の書き込みが完了したら、次は既存ファイルへの追記を行ってみましょう。

追記のサンプルコード

#行を追記するプログラム
class="notranslate">line1 = '\n\nThis is a new line. This line will be appended. \n'
#追記モードでファイルを開く
my_file = open('file_read_write.txt', 'a')
my_file.write(line1)
my_file.close()
print('Appending Done')

実行結果

Appending Done

最後に、read()メソッドとreadline()メソッドを使ってファイルの内容を読み取る方法を確認します。read()には整数「n」を引数として渡すことができ、先頭のn文字だけを読み取ることも可能です。

読み込みのサンプルコード

#ファイルから読み込むプログラム
#読み取りモードでファイルを開く
my_file = open('file_read_write.txt', 'r')
print('Show the full content:')
print(my_file.read())
#最初の2行だけ表示
my_file.seek(0)
print('First two lines:')
print(my_file.readline(), end = '')
print(my_file.readline(), end = '')
#先頭から25文字だけ表示
my_file.seek(0)
print('\n\nFirst 25 characters:')
print(my_file.read(25), end = '')
my_file.close()

実行結果

Show the full content:
This is first line. 
This is another line to store into file.
The Third Line for the file.
Another line... !@#$%^&*()_+.
End Line

This is a new line. This line will be appended. 

First two lines:
This is first line. 
This is another line to store into file.

First 25 characters:
This is first line. 
This

このように、Pythonではopen()関数に適切なモードを指定するだけで、ファイルの読み書きを簡単に行えます。用途に応じて「r」「w」「a」などのモードを使い分けることで、効率的にファイル操作を実装できるでしょう。

  1. Pythonでテキストファイルを読み込む方法を徹底解説!read()・readline()・readlines()の違いと使い分け

    テキストファイルとは、単純な文字情報のみで構成されたファイルのことです。Pythonには、テキストファイルを読み書きするための組み込み関数が標準で用意されており、追加のライブラリをインストールすることなく手軽にファイル操作が行えます。この記事では、Pythonでテキストファイルを読み込む3つの方法について、具体的なコード例とともに詳しく解説します。テキストファイルを読み込む3つの方法Pythonでテキストファイルを読み込む際に使える主なメソッドは以下の3つです。read() — ファイル全体を一度に読み込み、すべての内容を1つの文字列として返します。readline() — ファイルから1行だ

  2. PythonのopenpyxlでExcelファイルを読み書きする方法を徹底解説

    はじめにopenpyxlは、Excel 2010形式のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。Office Open XML形式をPythonからネイティブに扱えるライブラリが存在しなかったことから、その不足を補うために誕生しました。業務などで使用するExcelファイルは「ワークブック(Workbook)」と呼ばれ、最低1枚、最大で数十枚のシートを含むことができます。各シートは、行が1から始まり、列がAから始まる構成になっています。openpyxlライブラリを使えば、シートの追加やデータの入力はもちろん、データの操作や削除まで、さまざま