連載
» 2019年09月17日 05時00分 公開

Python入門:[Python入門]ファイル操作の基本 (3/3)

[かわさきしんじ,Deep Insider編集部]
前のページへ 1|2|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+'の違いは、前者は書き込みのみが可能なことに対して、後者は読み込みと書き込みの両方が可能な点となる。

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。