جلسه سی و ششم
استثناها و ادامه فایلها
باز کردن یک فایل از یک زیر پوشه:
هنگامی که پایتون تابع open() را اجرا می کند، به دنبال فایل در همان فهرستی می گردد که برنامه در حال اجرا در آن ذخیره شده است. می توانید با استفاده از یک مسیر نسبی یک فایل را از یک زیر پوشه باز کنید. همچنین می توانید از یک مسیر مطلق برای باز کردن هر فایلی در سیستم خود استفاده کنید.
مسیر مطلق:
مسیر مطلق (Absolute Path) در کامپیوتر به مسیر کامل و دقیق یک فایل یا پوشه در سیستم فایل اشاره دارد. این مسیر شامل تمام پوشهها و زیرپوشههای لازم برای دسترسی به آن فایل یا پوشه است.
مسیر مطلق همیشه از ریشه (root) سیستم فایل شروع میشود و تمام پوشهها و زیرپوشههای لازم را برای دسترسی به آن فایل یا پوشه مشخص میکند.
مسیر نسبی:
مسیر نسبی (Relative Path) به مکان فایل یا پوشه نسبت به موقعیت جاری کاربر اشاره دارد. مسیر نسبی ممکن است شامل پوشهها و زیرپوشههای کمتری باشد و معمولاً با نقطه (.) یا دو نقطه (..) شروع میشود.
1 2 3 4 5 6 7 8 |
<xmp>مثال 1:خواندن از یک فایل در مسیر نسبی. f_path = "text_files/alice.txt" with open(f_path) as f_obj: lines = f_obj.readlines() for line in lines: print(line.rstrip())</xmp> |
1 2 3 4 5 6 |
<xmp>مثال 2: خواندن از یک فایل در مسیر مطلق. f_path = "/home/ehmatthes/books/alice.txt" with open(f_path) as f_obj: lines = f_obj.readlines()</xmp> |
1 2 3 4 |
<xmp>یک نمونه مسیر مطلق. f_path = "C:Usersehmatthesbooksalice.txt"</xmp> |
استثناها
استثناها اشیاء خاصی هستند که به برنامه های شما کمک می کنند به روش های مناسب به خطاها پاسخ دهند. به عنوان مثال اگر برنامه شما سعی می کند فایلی را باز کند که وجود ندارد، می توانید از استثناها برای نمایش یک پیام خطای آموزنده به جای خراب شدن برنامه استفاده کنید
هنگامی که فکر می کنید ممکن است خطایی رخ دهد، می توانید یک بلوک try_except بنویسید تا استثنایی که ممکن است ایجاد شود را مدیریت کنید. بلوک try به پایتون میگوید که اجرای کدی را امتحان کند، و بلوک استثنا به پایتون میگوید که اگر کد منجر به نوع خاصی از خطا شد، چه کاری انجام دهد.
try
–except
در پایتون یک بلوک کد است که به شما امکان میدهد تا خطاهای احتمالی را مدیریت کنید. این بلوک کد به شما اجازه میدهد تا در صورت بروز خطا، برنامه را به طور موثر اجرا کنید.
ساختار اصلی try
–except
در پایتون به شرح زیر است:
1 2 3 4 5 6 7 8 |
<xmp>try: # کد که ممکن است خطا بیندازد pass except ExceptionType: # کد اجرایی در صورت بروز خطای مشخص شده pass</xmp> |
در اینجا:
– try
بلوکی است که شامل کد احتمالی خطازا است.
– except
بلوکی است که در صورت بروز خطا در بلوک try
، اجرا میشود.
– ExceptionType
نوع خطایی است که قرار است در بلوک except
مدیریت شود.
برای مثال 1: مدیریت استثنای ZeroDivisionError(تقسیم بر صفر).
1 2 3 4 5 6 |
<xmp>try: result = 10 / 0 # خطای تقسیم بر صفر except ZeroDivisionError: print("Error: Division by zero")</xmp> |
در این مثال، اگر در بلوک try
خطای ZeroDivisionError
رخ دهد، برنامه به بلوک except
میرود و متن “Error: Division by zero” را چاپ میکند.
مثال 2: مدیریت استثنا FileNotFoundError(پیدا نشدن فایل)
1 2 3 4 5 6 7 8 9 |
<xmp>f_name = 'siddhartha.txt' try: with open(f_name) as f_obj: lines = f_obj.readlines() except FileNotFoundError: msg = "Can't find file {0}.".format(f_name) print(msg)</xmp> |
در این مثال، اگر در بلوک try
خطای FileNotFoundError
رخ دهد، برنامه به بلوک except
میرود و متن “msg” را چاپ میکند.
try
–except
به شما امکان میدهد تا خطاها را شناسایی و مدیریت کنید. این بسیار مفید است زیرا باعث میشود برنامه شما در هنگام بروز خطا، به طور موثر اجرا شود و از شکست کامل آن جلوگیری کند.
همچنین میتوان چند بلوک except
برای مدیریت انواع مختلف خطاها در برنامه استفاده کرد. علاوه بر این، بلوک finally
نیز میتواند برای اجرای کدی که باید در هر حالت اجرا شود، مورد استفاده قرار گیرد.