Python でのファイル処理の概要

Patricia Arquette
リリース: 2024-10-19 22:17:01
オリジナル
935 人が閲覧しました

Introduction to File Handling in Python

ファイル処理は、Python を使用する上で最も重要な側面の 1 つです。テキスト文書の読み取り、ログの書き込み、CSV ファイルの処理、データの保存のいずれの場合でも、ファイルの操作方法を理解することが重要です。幸いなことに、Python では、汗をかかずにファイルを作成、開き、読み取り、書き込み、操作できる組み込み関数を使用することで、これを簡単に行うことができます。

この記事では、ファイルを開くことから CSV や JSON などの一般的なファイル形式の処理まで、Python でのファイル処理の基本を詳しく説明します。また、大きなファイルを効率的に処理し、ファイルを安全に処理するためのヒントも共有します。最終的には、自信を持って Python を使用してプロジェクト内のファイルを管理できるようになります。

取り上げる内容:

  1. ファイルの開閉
  2. ファイルからの読み取り
  3. ファイルへの書き込み
  4. バイナリファイルの処理
  5. 例外の処理
  6. ファイル操作に os と pathlib を使用する
  7. CSV および JSON ファイルの操作
  8. 効率的なファイル処理のヒント
  9. ファイルのエンコーディングとクロスプラットフォームに関する考慮事項

1. ファイルの開閉

ファイルを操作するときの最初のステップは、ファイルを開くことです。 Python では、これは open() 関数を使用して行われます。この関数は、ファイル名とファイルを開くモード (「r」の読み取り、「w」の書き込み、または「a」の追加など) という 2 つの主な引数を取ります。 )。完了したら、ファイルを閉じてリソースを解放することが重要です。

例:

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

open("example.txt", "w"): ファイル example.txt を書き込みモードで開きます。ファイルが存在しない場合は、Python によって作成されます。存在する場合は上書きされます。
file.write("Hello, World!"): 文字列「Hello, World!」を書き込みます。ファイルにコピーします。
file.close(): ファイルを閉じます。これは、すべての変更を確実に保存し、リソースを解放するために必要です。
より良い方法: with ステートメントを使用する

完了すると with ステートメントは自動的にファイルを閉じるため、明示的に close() を呼び出す必要はありません。

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

with ステートメントを使用すると、ブロック内でエラーが発生した場合でも、コード ブロックの実行後にファイルが自動的に閉じられます。これにより、偶発的なデータ損失やリソース漏洩が防止されます。

2. ファイルからの読み取り

Python でファイルを読み取るには、ファイル全体を一度に読み取るか、1 行ずつ処理するかに応じて、複数の方法があります。

例 (ファイル全体の読み取り):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

open("example.txt", "r"): ファイルを読み取りモード ("r") で開きます。
file.read(): ファイルの内容全体を変数 content に読み取ります。これは小さなファイルには適していますが、大きなファイルの場合は非効率的になる可能性があります。
print(content): コンテンツをコンソールに出力します。

例 (1 行ずつ効率的に読み取る):

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

for line in file ループはファイルを 1 行ずつ読み取り、大きなファイルのメモリ効率を高めます。
line.strip(): 印刷前に各行の先頭/末尾の空白文字または改行文字を削除します。

3. ファイルへの書き込み

データをファイルに書き込むには、「w」または「a」モードを使用します。 「w」モードではファイルが上書きされ、「a」モードでは既存のコンテンツに追加されます。

例 (ファイルへの書き込み):

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

open("example.txt", "w"): ファイルを書き込みモードで開きます。ファイルが存在しない場合はファイルを作成し、存在する場合はコンテンツを消去します。
file.write(): 文字列をファイルに書き込みます。必要に応じて、新しい行に n を含めることができます。

例 (ファイルへの追加):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

open("example.txt", "a"): ファイルを追加モード ("a") で開きます。これは、既存のコンテンツを消去せずに、新しいデータがファイルの最後に追加されることを意味します。
file.write("nこれは最後に追加されます。"): ファイルの最後に新しい行を書き込み、新しい行に移動するために n を追加します。

4. バイナリファイルの処理

画像、ビデオ、その他のバイナリ データなどの非テキスト ファイルを操作する場合は、バイナリ モード (読み取りには「rb」、書き込みには「wb」) を使用する必要があります。

例 (バイナリファイルの読み取り):

with open("example.txt", "r") as file:
    for line in file:  # Loop through each line in the file
        print(line.strip())  # Remove trailing newline characters and print the line
ログイン後にコピー
ログイン後にコピー

説明:

open("image.jpg", "rb"): バイナリ データに必要な読み取りバイナリ モード ("rb") でファイルを開きます。
binary_file.read(): ファイルのバイナリ コンテンツ全体を読み取ります。
binary_data[:10]: ファイルの最初の 10 バイトを表示します。これは、バイナリ データをチャンクでプレビューまたは処理する場合に便利です。

5. 例外の処理

ファイルを操作するときに、ファイルの欠落や権限の問題などのエラーが発生する可能性があります。 Try-Except ブロックを使用すると、これらのエラーを適切に処理できます。

例:

with open("example.txt", "w") as file:
    file.write("Writing a new line of text.")
ログイン後にコピー
ログイン後にコピー

説明:

try ブロックは、存在しない可能性のあるファイルを開いて読み取ろうとします。
ファイルが見つからない場合は、Except FileNotFoundError ブロックがエラーを捕捉し、プログラムをクラッシュさせる代わりに、わかりやすいメッセージを出力します。

6. ファイル操作に os と pathlib を使用する

os および pathlib モジュールは、ファイルを開いたり閉じたりするだけでなく、ファイルシステムと対話する方法を提供します。ファイルが存在するかどうかを確認したり、名前を変更したり、削除したりできます。

例 (OS モジュール):

# Open a file in write mode
file = open("example.txt", "w")

# Write some content to the file
file.write("Hello, World!")

# Always close the file after you're done to free up system resources
file.close()

ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

with open("example.txt", "w") as file:
    file.write("Hello, World!")
# The file is automatically closed here, even if an error occurs
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

例 (pathlib モジュール):

with open("example.txt", "r") as file:
    content = file.read()  # Read the entire file at once
    print(content)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

説明:

Path("new_example.txt"): ファイルを指す Path オブジェクトを作成します。
file_path.exists(): ファイルが存在するかどうかを確認します。
file_path.unlink(): ファイルを削除します。

7. CSV および JSON ファイルの操作

Python の csv および json モジュールを使用すると、CSV (カンマ区切り値) や JSON (JavaScript Object Notation) などの構造化データ形式を簡単に操作できます。

CSV ファイル

csv モジュールを使用すると、行と列で編成されたデータを処理できます。

例 (CSV の書き込み):

with open("example.txt", "r") as file:
    for line in file:  # Loop through each line in the file
        print(line.strip())  # Remove trailing newline characters and print the line
ログイン後にコピー
ログイン後にコピー

説明:

csv.writer(file): CSV ファイルに行を書き込むためのライター オブジェクトを作成します。
Writer.writerow(): データの各行をファイルに書き込みます。

例 (CSV の読み取り):

with open("example.txt", "w") as file:
    file.write("Writing a new line of text.")
ログイン後にコピー
ログイン後にコピー

説明:

上記のコード ブロックの csv.reader(file): CSV ファイルの各行を反復処理するリーダー オブジェクトを作成します。
リーダーループの for row は各行を読み取り、出力します。
JSON ファイル
json モジュールは、キーと値のペアで構造化されたデータの読み取りと書き込みに最適です。

例 (JSON の記述):

with open("example.txt", "a") as file:
    file.write("\nThis will be appended at the end.")
ログイン後にコピー

説明:

json.dump(data, file): 辞書データを JSON としてファイルに書き込みます。

例 (JSON の読み取り):

with open("image.jpg", "rb") as binary_file:
    binary_data = binary_file.read()  # Read the entire file in binary mode
    print(binary_data[:10])  # Print first 10 bytes for preview
ログイン後にコピー

説明:

json.load(file): JSON ファイルを読み取り、Python 辞書に変換し直します。

8.効率的なファイル処理のヒント

大きなファイルを扱う場合、ファイル全体をメモリにロードするよりも、ファイルを分割して処理する方が効率的です。

例 (チャンクで読み取る):

try:
    with open("nonexistentfile.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("The file does not exist!")
ログイン後にコピー

結論

Python でのファイルの操作はシンプルかつ強力です。テキスト ファイルの処理、データの保存、大規模なデータセットの処理のいずれの場合でも、ファイル操作をマスターするとコーディング作業が容易になります。この記事で説明するヒントとテクニックを活用すれば、より効率的で信頼性が高く、スケーラブルな Python プログラムを作成できるようになります。

読んでいただきありがとうございます...

以上がPython でのファイル処理の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート