連載
[Python入門]ファイル操作の基本:Python入門(3/3 ページ)
テキストファイルを例に、ファイルのオープン、ファイルに対する読み込みや書き込み、ファイルのクローズなど、ファイル操作の基本を取り上げる。
テキストファイルへの書き込み
テキストファイルへの書き込みを行う目的でファイルをオープンするには、mode引数を指定する必要がある。以下に本稿の冒頭で示した構文を再掲する(省略したパラメーターについては本稿では触れない)。
open関数
open(file, mode='r')
fileにオープンするファイルの名前を、modeにオープンするモードを指定する。modeに指定可能な値は以下の通り。
パラメーターmodeに指定可能な値 | 説明 |
---|---|
'r' | 読み込み用にオープン(デフォルト値) |
'w' | 書き込み用にオープン |
'a' | 追記用にオープン |
'x' | 排他的生成用にオープン(既にファイルがあるときにはエラーとなる)。ファイルは新規に作成され、書き込み用にオープンされる |
'b' | バイナリモード(詳細は次回に取り上げる)。'r'、'w'、'a'と一緒に指定する必要がある |
't' | テキストモード(デフォルト値)。'r'、'w'、'a'と一緒に指定する必要がある |
'+' | 更新用にオープン。'r'、'w'、'a', 'x'と一緒に指定する必要がある |
open関数のパラメーターmode |
これまでの例ではopen関数にはファイル名だけを渡していたので、上の表で「(デフォルト値)」とある'r'と't'が指定されたものとして、テキストモードで読み込み用にファイルがオープンされていた。書き込みを行うには、以下の値を指定できる。
- 'w':ファイルをオープンして、ファイルサイズを0とする(既存のファイルをオープンした場合、その内容は全て削除される)
- 'a':ファイルをオープンして、ファイル位置をファイル末尾とする。書き込んだ内容は既存の内容の後に追記される。指定した名前のファイルがなければ新規に作成する
- 'x':ファイルを排他的に生成する。指定した名前のファイルが既に存在していれば、エラー(FileExistsError例外)となる
- '+':'r'、'w'、'a'、'x'と一緒に指定する('r+'など)。ファイルを更新する目的でオープンする。開いたファイルは読み込みと書き込みが可能になる
'r'、'w'、'a'、'x'はいずれか1つだけを指定可能で、'b'、't'もどちらかのみを付加して指定できる(指定しなければ't'が指定されたものと見なされる)。'b'を指定した場合については次回に取り上げる。
'+'は'r'、'w'、'a'、'x'と一緒に指定して、そのファイルを読み書き両用にオープンする。このときには次のような動作になる。
- 'r+':既存のファイルの先頭をファイル位置とする。指定した名前のファイルがなければエラーとなる
- 'w+':ファイルを新規に作成するか、既存のファイルをオープンして、その内容を全て削除する。ファイルの先頭がファイル位置になる
- 'a+':ファイルを新規に作成するか、既存のファイルをオープンして、末尾をファイル位置とする(新規ファイルの場合はファイル末尾=ファイル先頭となる)
- 'x+':ファイルを新規作成して、ファイルの先頭をファイル位置とする
'w'/'a'/'x'と'w+'/'a+'/'x+'の違いは、前者は書き込みのみが可能なことに対して、後者は読み込みと書き込みの両方が可能な点となる。
Copyright© Digital Advantage Corp. All Rights Reserved.