Python 3 でファイルを読み書き両方で開く方法

PYTHON3 チュートリアル

## Python 3でファイルを読み書き両方で開く方法

Pythonはファイル操作において非常に強力な機能を提供しています。この記事では、Python 3でファイルを読み書き両方で開く方法について詳しく説明します。ファイルを操作する際の基本的な知識から、実際のサンプルコードとその出力までをカバーします。

ファイルモードの基本

Pythonでファイルを開く際には、特定のモードを指定する必要があります。モードは、ファイルをどのように操作するかを決定します。以下は、一般的なファイルモードの一覧です:

  • ‘r’: 読み取り専用
  • ‘w’: 書き込み専用(既存のファイルは上書きされます)
  • ‘a’: 追記(ファイルの末尾に追加)
  • ‘r+’: 読み書き両方
  • ‘w+’: 読み書き両方(既存のファイルは上書きされます)
  • ‘a+’: 読み書き両方(ファイルの末尾に追加)

サンプルコード1: ‘r+’モードでファイルを開く

以下の例では、既存のファイルを’r+’モードで開き、内容を読み取った後、新しいデータを書き込みます。

# sample.txtの内容を読み込み、末尾にデータを追加する
with open('sample.txt', 'r+') as file:
    content = file.read()
    print("ファイルの内容:", content)
    file.write("\n追加された行")

出力例: ファイルの内容が表示され、その後に”追加された行”がファイルに書き込まれます。

サンプルコード2: ‘w+’モードでファイルを開く

‘w+’モードはファイルを読み書き両方で開きますが、既存の内容はすべて消去されます。以下の例では、新しいファイルを作成し、データを書き込んだ後に読み込みます。

# 新しいファイルを作成し、データを書き込んでから読み込む
with open('newfile.txt', 'w+') as file:
    file.write("新しいデータ\n")
    file.seek(0)  # ファイルの先頭に戻る
    content = file.read()
    print("ファイルの内容:", content)

出力例: “ファイルの内容: 新しいデータ”が表示されます。

サンプルコード3: ‘a+’モードでファイルを開く

‘a+’モードは、ファイルの末尾にデータを追加しつつ、ファイル全体を読み込むことができます。以下の例では、既存のファイルにデータを追加し、全体を読み取ります。

# sample.txtに追記し、全体を読み込む
with open('sample.txt', 'a+') as file:
    file.write("\nさらに追加された行")
    file.seek(0)  # ファイルの先頭に戻る
    content = file.read()
    print("ファイルの内容:", content)

出力例: ファイルの既存の内容と新たに追加された行が表示されます。

まとめ

Python 3では、ファイルを開く際に適切なモードを選択することで、ファイルの読み書きを柔軟に行うことができます。’r+’、’w+’、’a+’の各モードは、それぞれ異なる用途に適しており、この記事で紹介したサンプルコードを参考に、実際のプログラムで活用してみてください。

Python 3 でファイルを読み書き両方で開く方法は、`open()` 関数を使用して行います。`open()` 関数を使用すると、ファイルを読み取り専用、書き込み専用、または読み書き両方で開くことができます。

例えば、ファイルを読み書き両方で開く場合は、`open()` 関数に `r+` モードを指定します。以下はその例です。

“`python
with open(‘example.txt’, ‘r+’) as file:
data = file.read()
file.write(‘New data’)
“`

このコードでは、’example.txt’ ファイルを読み書き両方で開き、ファイルの内容を読み取り、新しいデータを書き込んでいます。`with` ステートメントを使用することで、ファイルを自動的にクローズすることができます。

ファイルを読み書き両方で開く際には、ファイルが存在しない場合には新しく作成されることに注意してください。また、ファイルを開いた後は適切にクローズすることを忘れないようにしましょう。

購読
通知
0 Comments
Inline Feedbacks
View all comments