例外なくファイルが存在するかどうかを確認するにはどうすればよいですか? 質問する

例外なくファイルが存在するかどうかを確認するにはどうすればよいですか? 質問する

を使用せずにファイルが存在するかどうかを確認するにはどうすればいいですか?try声明?

ベストアンサー1

チェックする理由が のようなことを実行するためである場合、ファイルを開こうとする部分を でif file_exists: open_it()囲む方が安全ですtry。チェックしてから開くと、チェックしてから開こうとするまでの間にファイルが削除されたり、移動されたり、何かが起きたりするリスクがあります。

ファイルをすぐに開く予定がない場合は、os.path.isfileそれがファイルであることを確かめる必要がある場合。

Trueパスが既存の通常ファイルである場合に返します。これはシンボリックリンクに従うので、リンク()そしてisfile()同じパスでも当てはまります。

import os.path
os.path.isfile(fname)

pathlib

Python 3.4以降では、pathlibモジュールオブジェクト指向アプローチを提供します ( pathlib2Python 2.7 にバックポートされています)。

from pathlib import Path

my_file = Path("/path/to/file")
if my_file.is_file():
    # file exists

ディレクトリを確認するには、次のようにします。

if my_file.is_dir():
    # directory exists

Pathオブジェクトがファイルかディレクトリかに関係なく存在するかどうかを確認するには、次を使用しますexists()

if my_file.exists():
    # path exists

resolve(strict=True)ブロック内でも使用できますtry:

try:
    my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
    # doesn't exist
else:
    # exists

おすすめ記事