Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

【Pythonお悩み解決】open()のmodeについて

こんにちは、PyQサポートです。
今回は、open()でファイルを読み込むときのmodeについて紹介します。

質問: with open()の場合は、"r"の記述は不要ですか?

以前、ファイルの内容をプログラムで利用しようではファイルを開く時にf = open(パス, "r")と書くと学習しました。
今回、ファイルの読み込み方法を学ぼう - withキーワードの模範解答ではwith open(パス)となっています。
with open() を利用する場合は、"r"などを記述する必要ないのですか?

サンプル

with open('input/lunch.csv', encoding='utf-8') as f:
    for row in f:
        print(row)

回答: withを利用することと、'r'を指定することは関係ありません

with を使う理由

ファイルを開く時にwithを使うことで得られる利点は例外が発生した時も開いたファイルを閉じてくれる点になります。
ファイルを閉じ忘れて開きっぱなし」の状態を防ぎやすく、機械のリソースを不要に使うミスを減らせます。

open()の処理について

実は open() 関数は mode="r" というデフォルト引数が設定されているため、mode引数が渡されない場合は読み込み専用として動作します。
そのため with open()の場合だけでなく、open() を使う時は常にmode引数を渡さなければ読み込み専用となります。

以下の実装はすべて、ファイルを読み込み専用で開きます。

  • open(パス)
  • open(パス, "r")
  • open(パス, mode="r")

参照: open - 組み込み関数 Python3 ドキュメント

Copyright ©2017- BeProud Inc. All rights reserved.