11
0

چجوری می‌تونم بفهمم یه فایل وجود داره یا نه، بدون اینکه از دستور try استفاده کنم؟

0

اگه دلیل چک کردن اینه که مثلاً اگه فایل وجود داشت، بازش کنی، بهتره از try برای باز کردن فایل استفاده کنی. چون اگه اول چک کنی و بعد بخوای بازش کنی، ممکنه فایل تو این فاصله پاک بشه یا جابجا بشه.

اگه نمی‌خوای فوراً فایل رو باز کنی، می‌تونی از os.path.isfile استفاده کنی اگه می‌خوای مطمئن بشی که یه فایل هست.

اگه مسیر یه فایل معمولی موجود باشه، True برمی‌گردونه. این تابع لینک‌های نمادین رو هم دنبال می‌کنه، پس هم islink() و هم isfile() می‌تونن برای یه مسیر مشخص True باشن.

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

pathlib

از پایتون 3.4 به بعد، ماژول pathlib یه رویکرد شی‌گرایی ارائه می‌ده (که توی pathlib2 برای پایتون 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
ارسال پاسخ به سوال بالا

برای ارسال پاسخ باید وارد اکانتت بشی

اگر پاسخت شامل تکه کدی میشه، از منوی ویرایشگر پایین، تکه کدی که نوشتی رو انتخاب کن و بعد از طریق زبان کدی که نوشتی رو انتخاب کن تا کدت داخل بلاک مخصوص زبان خودش قرار بگیره و کدت خواناتر برای بقیه نشون داده بشه

اگه پاسخت رفرنسی داره، لینک رفرنس رو هم بذار تا پاسختت کاملتر و معتبر تر بشه