を使用せずにファイルが存在するかどうかを確認するにはどうすればいいですか?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
モジュールオブジェクト指向アプローチを提供します ( pathlib2
Python 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