0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】with文の基本をわかりやすくまとめてみた

0
Posted at

with 文について、自分なりに理解した内容をまとめておきます。

with文とは?

with 文は、ファイルの読み書きやリソース操作の前後処理(例:ファイルを閉じるなど)を自動でやってくれる構文です。

たとえばファイルを開いて何か処理をしたあと、普通は close() を呼ぶ必要がありますが、それを自動でやってくれます。

with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()
print(content)

このように書くと、with のブロックを抜けたタイミングで f.close() が自動的に呼ばれます。

普通に書いた場合との比較

通常の書き方

f = open('example.txt', 'r', encoding='utf-8')
content = f.read()
f.close()  # ← 書き忘れるとファイルが閉じられない!

エラーが出たり close() を書き忘れたりすると、ファイルがずっと開いたままになってしまう危険があります。

with文を使った安全な書き方

with open('example.txt', 'r', encoding='utf-8') as f:
    content = f.read()
# この時点で自動的にファイルが閉じられている

with 文はこのように安全にファイルを扱えるので、基本的にファイル操作では必ず使うべきと感じました。

open関数のおさらい

open() 関数はファイルを開くための関数で、よく使う構文は次のような形です。

open('ファイル名', 'モード', encoding='utf-8')

モード一覧

モード 意味
'r' 読み込み(read) ※ファイルがないとエラー
'w' 書き込み(write) ※内容を上書きする
'a' 追記(append)
'x' 新規作成(ファイルがあるとエラー)
'b' バイナリモード(画像など)
't' テキストモード(デフォルト)

たとえば、'wt' は「テキスト書き込み」、'rb' は「バイナリ読み込み」という意味になります。

よく使うファイルメソッドまとめ

ファイルオブジェクトには便利なメソッドがいくつかあるので、最低限覚えておきたいものをまとめておきます。

読み込み用

メソッド 説明
read() 全体を読み込む
readline() 1行だけ読み込む
readlines() 行をリストで読み込む

書き込み用

メソッド 説明
write() 文字列を書き込む
writelines() リスト形式で複数行を書き込む(改行は自分で付ける)

その他便利なもの

メソッド/属性 説明
seek(offset) ファイルの読み書き位置を変更する
tell() 現在の位置(バイト数)を返す
flush() バッファを強制的に保存する
closed ファイルが閉じているか(True/False)
name ファイル名を取得
encoding 使用中の文字エンコーディングを取得

おまけ:ファイル位置を操作する例

with open('example.txt', 'r', encoding='utf-8') as f:
    print(f.tell())    # → 0(先頭)
    f.read(5)
    print(f.tell())    # → 5(5バイト読み進んだ)
    f.seek(0)
    print(f.read())    # → 最初から全体を再読込

まとめ

  • with 文は後始末(closeなど)を自動で行う構文
  • ファイル操作では with open(...) as f: の形が安全で便利
  • open() にはモードやエンコーディングを指定できる
  • ファイルオブジェクトのメソッドも合わせて覚えておくと便利

最初は意味がわかりづらかったですが、ファイル操作では必須ともいえる構文なので、しっかり知識として定着させたいです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?