بررسی وجود دایرکتوری یا فایل در پایتون — به زبان ساده + مثال و کد
اگر به کدنویسی با زبان برنامهنویسی پایتون میپردازید، احتمالاً تاکنون با این سناریو مواجه شدهاید که لازم بوده یک فایل یا دایرکتوری خاص را باز کنید، اما مطمئن نبودهاید که آیا آن مسیر فایل روی درایو مورد نظر وجود دارد یا نه. بدیهی است که در صورت عدم وجود دایرکتوری، میتوان با روشهای مختلف مدیریت خطا این موقعیت را مدیریت کرد. اما چه بهتر است که نگذاریم کار حتی به آنجا بکشد و قبل از این که اقدام به باز کردن فایل یا دایرکتوری کنیم، از وجود یا عدم وجود آن آگاه شویم. با ما همراه باشید تا با روش بررسی فایل در پایتون آشنا شوید.
متد ()exists در پایتون برای بررسی وجود یک فایل یا دایرکتوری خاص مورد استفاده قرار میگیرد. همچنین از این متد برای بررسی ارجاعی به یک توصیفگر فایل باز نیز استفاده میشود. در صورتی که فایل موجود باشد، این متد مقدار true و در غیر این صورت مقدار false بازگشت میدهد. این مد از سوی ماژول os و ماژول فرعی os.path به صورت زیر استفاده میشود:
os.path.exists(path)
در این راهنما با روش بررسی وجود یک فایل یا دایرکتوری در پایتون آشنا خواهیم شد. روشهای مختلفی برای بررسی وجود دایرکتوری در پایتون وجود دارند که هر کدام از آنها را به صورت جداگانه معرفی و بررسی خواهیم کرد. همچنین پیش از ادامه مطلب لازم است یادآور شویم که اگر به تازگی یادگیری پایتون را شروع کردهاید و به دنبال کتابهای آموزش پایتون و بهترین مسیر یادگیری پایتون هستند توصیه میکنیم مطالبی که در همین رابطه در مجله تم آف تهیه شدهاند را مطالعه کنید.
دستور ()os.path.exists
با استفاده از متد path.exists میتوانیم به سرعت وجود یا عدم وجود یک فایل را در پایتون بررسی کنیم. مراحل کار به صورت زیر است.
گام اول: ایمپورت کردن ماژول os.path
پیش از آن که کد را اجرا کنید، ابتدا باید ماژول os.path را ایمپورت کنید.
import os.path
from os import path
گام دوم: استفاده از تابع ()path.exists
اکنون از تابع ()path.exists در پایتون به منظور بررسی وجود فایل استفاده میکنیم.
path.exists("faradars.txt")
گام سوم: اجرای کد
کد کامل بررسی وجود فایل به صورت زیر است.
import os.path
from os import path
def main():
print ("File exists:"+str(path.exists('guru99.txt')))
print ("File exists:" + str(path.exists('career.guru99.txt')))
print ("directory exists:" + str(path.exists('myDirectory')))
if __name__== "__main__":
main()
در این مثال تنها فایل faradars.txt در دایرکتوری کاری ایجاد شده است. در نتیجه خروجی به شکل زیر است.
خروجی
File exists: True File exists: False directory exists: False
- مطلب پیشنهادی برای مطالعه: کار با فایل در پایتون — از صفر تا صد + مثال
روش ()Python isfile
متد ()Python isfile بررسی میکند آیا مسیر ارائه شده یک فایل معمولی موجود است یا نه. این متد در صورت وجود فایل، یک مقدار بولی true و در غیر این صورت مقدار false بازگشت میدهد. ساختار این دستور به صورت زیر است:
os.path.isfile(path)
در مثال زیر روش استفاده عملی از این دستور را مشاهده میکنید.
import os.path
from os import path
def main():
print ("Is it File?" + str(path.isfile('guru99.txt')))
print ("Is it File?" + str(path.isfile('myDirectory')))
if __name__== "__main__":
main()
خروجی کد فوق چنین است.
Is it File? True Is it File? False
روش ()os.path.isdir
اگر بخواهیم تأیید کنیم که مسیر مفروض واقعاً به یک دایرکتوری اشاره دارد یا نه، میتوانیم از تابع ()os.path.isdir پایتون کمک بگیریم.
import os.path
from os import path
def main():
print ("Is it Directory?" + str(path.isdir('guru99.txt')))
print ("Is it Directory?" + str(path.isdir('myDirectory')))
if __name__== "__main__":
main()
خروجی کد فوق چنین است.
Is it Directory? False Is it Directory? True
روش ()pathlibPath.exists برای پایتون 3.4
در پایتون 3.4 و نسخههای بالاتر ماژول pathlib برای مدیریت مسیرها در سیستم فایل اضافه شده است. این ماژول از رویکرد شیءگرایی برای بررسی وجود یا عدم وجود پوشه بهره میگیرد.
import pathlib
file = pathlib.Path("guru99.txt")
if file.exists ():
print ("File exist")
else:
print ("File not exist")
خروجی کد فوق چنین است.
File exist
کد کامل به صورت زیر است.
import os
from os import path
def main():
# Print the name of the OS
print(os.name)
#Check for item existence and type
print("Item exists:" + str(path.exists("guru99.txt")))
print("Item is a file: " + str(path.isfile("guru99.txt")))
print("Item is a directory: " + str(path.isdir("guru99.txt")))
if __name__ == "__main__":
main()
خروجی این کد نیز چنین است.
Item exists: True Item is a file: True Item is a directory: False
سخن پایانی
در این مطلب با چهار روش مختلف برای بررسی وجود فایل یا دایرکتوری در پایتون آشنا شدیم. این که از کدام یک از این روشها استفاده میکنید، در عمل به پارامترهای مختلفی از جمله مجموعه ماژولهایی که از قبل در پروژه خود ایمپورت کردهاید و همچنین نسخه پایتونی که مورد استفاده قرار میدهید بستگی دارد.