Python 速習チュートリアル

Python File Open

1. サーバー上のファイルを開く

Pythonファイルと同じフォルダーに、以下の内容の demofile.txt というファイルが存在すると仮定します。

demofile.txt

Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

ファイルを開くには、組み込みの open() 関数を使用します。
open() 関数はファイルオブジェクトを返します。このオブジェクトには、ファイルの内容を読み取るための read() メソッドが用意されています。

コード例:ファイルの読み込み

# ファイルをオープンする
f = open("demofile.txt")

# 内容を読み取って出力する
print(f.read())

ファイルが別のディレクトリにある場合は、以下のようにファイルパスを指定する必要があります。

コード例:異なる場所にあるファイルを開く

# Windows環境での絶対パス指定の例
f = open("D:\\myfiles\\welcome.txt")
print(f.read())

1.1 with文の活用

ファイルをオープンする際、with 文を使用することも可能です。

コード例:withキーワードの使用

with open("demofile.txt") as f:
    print(f.read())

with 文を使用すると、ファイルのクローズ処理をPythonが自動的に行なってくれるため、閉じ忘れを心配する必要がありません。モダンなPython開発では、この方法が推奨されます。

1.2 ファイルのクローズ

ファイル操作が終わったら、必ずファイルをクローズ(終了)するのが良いプラクティスです。
with 文を使用しない場合は、明示的に close() ステートメントを記述する必要があります。

コード例:処理終了後にファイルをクローズする

f = open("demofile.txt")

# 最初の1行を読み込む
print(f.readline())

# ファイルを閉じる
f.close()

       注意: ファイルは常にクローズするようにしてください。バッファリングの影響により、ファイルをクローズするまで変更内容が反映されない場合があります。

2. ファイルの一部を読み込む

デフォルトでは、read() メソッドはテキスト全体を返しますが、取得したい文字数を指定することも可能です。

コード例:ファイルの最初の5文字のみを返す

with open("demofile.txt") as f:
    # 最初の5文字を読み込む
    print(f.read(5))

2.1 行単位での読み込み

readline() メソッドを使用すると、1行分だけを返します。

コード例:ファイルの1行を読み込む

with open("demofile.txt") as f:
    print(f.readline())

readline() を2回呼び出すことで、最初の2行を読み取ることができます。

コード例:ファイルの最初の2行を読み込む

with open("demofile.txt") as f:
    print(f.readline())
    print(f.readline())

ファイル全体を1行ずつ読み込みたい場合は、ファイルオブジェクトをループで処理するのが効率的です。

コード例:ファイルを1行ずつループ処理する

with open("demofile.txt") as f:
    # ファイルオブジェクトをイテレートする
    for x in f:
        print(x)