Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Python3.x】FileExistsError::filename2定数の使い方

filename2定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

FileExistsError.filename2定数は、Pythonの組み込み例外であるFileExistsErrorがファイルシステムの操作中に発生した際に、エラーに関連する2番目のファイルパスを保持する定数です。FileExistsErrorは、指定されたファイルやディレクトリが既に存在するときに発生するエラーで、例えばos.mkdir()で既に存在するディレクトリを作成しようとした場合や、os.rename()で移動先に同名のファイルが既に存在する場合などに発生します。このfilename2定数は、特にos.rename()やos.link()のように、操作に関与するファイルパスが二つ存在する場合に、エラーを引き起こした二つ目のパスを示すために使用されます。通常、FileExistsErrorインスタンスの属性として提供され、プログラムがエラー発生時に問題となっている具体的なファイルパスを特定し、それに応じた適切なエラー処理を行う上で非常に役立ちます。システムエンジニアを目指す初心者の方々にとって、ファイル操作におけるエラーの原因を詳細に把握し、堅牢なシステムを構築するために理解しておくべき重要な情報です。

構文(syntax)

1import os
2
3# FileExistsErrorを発生させるため、一時ファイルを作成します。
4temp_file_path = "temp_file_for_syntax_demo.txt"
5with open(temp_file_path, "w") as f:
6    f.write("dummy content")
7
8try:
9    # 既存のファイルを排他的に作成しようとすると、FileExistsErrorが発生します。
10    os.open(temp_file_path, os.O_CREAT | os.O_EXCL)
11except FileExistsError as e:
12    # 発生したFileExistsErrorオブジェクト'e'から'filename2'属性にアクセスする構文です。
13    # FileExistsErrorの場合、通常filename2はNoneとなりますが、アクセス自体は可能です。
14    second_filename_involved = e.filename2
15finally:
16    # デモンストレーション用に作成した一時ファイルをクリーンアップします。
17    if os.path.exists(temp_file_path):
18        os.remove(temp_file_path)

引数(parameters)

引数なし

引数はありません

戻り値(return)

str

FileExistsError 例外が発生した際に、関連するファイル名を文字列として返します。

関連コンテンツ