Pythonでファイルを扱う基本的な方法

Pythonでファイルを扱う基本的な方法はいくつかありますが、最も一般的なのは open() 関数を使う方法です。以下に基本的なコードと、Enlighterでの記述例を示します。

Python でファイルを開く基本形

Python

file = open('ファイル名.txt', 'モード')
# ファイルに対する操作 (読み込み、書き込みなど)
file.close()

または、より推奨される with ステートメントを使う方法です。with ステートメントを使うと、ファイル操作終了後に自動的にファイルが閉じられるため、閉じ忘れを防ぐことができます。

Python

with open('ファイル名.txt', 'モード') as file:
    # ファイルに対する操作 (読み込み、書き込みなど)
    pass # ここに具体的な処理を記述します

各要素の説明

  • open('ファイル名.txt', 'モード'): ファイルを開く関数です。
    • 'ファイル名.txt': 開きたいファイルの名前(パスを含む)を文字列で指定します。
    • 'モード': ファイルをどのように扱うかを指定する文字列です。主なモードは以下の通りです。
      • 'r': 読み込みモード(デフォルト)。ファイルが存在しない場合はエラーになります。
      • 'w': 書き込みモード。ファイルが存在する場合は内容を上書きし、存在しない場合は新規作成します。
      • 'a': 追記モード。ファイルが存在する場合は末尾に追記し、存在しない場合は新規作成します。
      • 'x': 排他的作成モード。ファイルが存在する場合はエラーになり、存在しない場合は新規作成します。
      • 'b': バイナリモード。テキストファイル以外(画像、音声など)を扱う際に使用します(例: 'rb', 'wb')。
      • 't': テキストモード(デフォルト)。テキストファイルを扱う際に使用します。
      • '+': 更新モード。読み書き両方を行いたい場合に、上記のモードと組み合わせて使用します(例: 'r+', 'w+')。
  • file: open() 関数が返したファイルオブジェクトを格納する変数です。このオブジェクトを通してファイルの読み書きなどの操作を行います。
  • file.close(): 開いたファイルを明示的に閉じるためのメソッドです。with ステートメントを使った場合は不要です。
  • with open(...) as file:: with ブロックの中でファイルオブジェクト file を使用できます。ブロックを抜けると自動的に file.close() が呼び出されます。
  • pass: with ブロック内に処理を記述するためのプレースホルダです。

Enlighter での記述例

Enlighter は WordPress のシンタックスハイライトプラグインですね。ブログ記事で Python のコードを綺麗に表示するために、以下のように HTML の <pre> タグと <code> タグで囲み、data-enlighter-language 属性に python を指定することが一般的です。

HTML

<pre class="EnlighterJS" data-enlighter-language="python"><code># Python でファイルを開く基本的な例 (読み込みモード)
try:
    with open('my_file.txt', 'r') as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("ファイルが見つかりませんでした。")

# Python でファイルを開く基本的な例 (書き込みモード)
try:
    with open('new_file.txt', 'w') as file:
        file.write("これは新しいファイルの内容です。\n")
    print("ファイルに書き込みました。")
except Exception as e:
    print(f"エラーが発生しました: {e}")
</code></pre>

補足

  • ファイルが存在しない場合のエラー処理など、より実践的なコードでは try-except ブロックを使うことが推奨されます。
  • ファイルのエンコーディングを指定したい場合は、open() 関数の encoding 引数を使用します(例: open('ファイル名.txt', 'r', encoding='utf-8'))。

ブログ記事の作成、頑張ってください!

よかったらシェアしてね!
目次