جلسه سی و چهارم
فایل ها و استثناها
فایل(file)
فایلها حاوی دستورات برنامهنویسی هستند که توسط موتور اجرای در سیستمعامل اجرا میشوند. به طور مثال، فایلهای با پسوند py
در پایتون و فایلهای با پسوند js
در جاوا اسکریپت به عنوان فایلهای فابل شناخته میشوند.
فایلهای فابل به دلیل ساختار ساده و قابلیت پردازش سریع، یکی از رایجترین روشهای توسعه برنامههای کاربردی در کامپیوتر هستند. آنها اغلب برای خودکارسازی وظایف، توسعه وبسایتها و برنامههای کاربردی مورد استفاده قرار میگیرند.
محل ذخیره سازی فایل ها هارد سیستم است.
برنامه های شما می توانند اطلاعات را از فایل ها بخوانند و می توانند داده ها را در فایل ها بنویسند. خواندن از روی فایلها به شما امکان میدهد با طیف گستردهای از اطلاعات کار کنید. نوشتن روی فایلها به کاربران این امکان را میدهد که دفعه بعد برنامه شما را از جایی که متوقف کردند ادامه دهند. شما می توانید متن را روی فایل ها بنویسید و می توانید ساختارهای پایتون مانند لیست ها را در فایل های داده ذخیره کنید. پ
مسیر جاری(current path) :
مسیر جاری در کامپیوتر به پوشه یا دایرکتوری فعلی که کاربر در آن قرار دارد، اشاره دارد. این مسیر نشان میدهد که کاربر در چه محلی از سیستم فایل قرار گرفته است.
مثال 1:خواندن از فایل در مسیر جاری.
1 2 3 4 5 6 |
<xmp>filename = 'siddhartha.txt' with open(filename) as f_obj: contents = f_obj.read() print(contents)</xmp> |
در مثال بالا filename نام متغییری حاوی نام فایل است، می باشد و f_obj اشاره گریست که بجای نام فایل از ان استفاده میکنیم تا به فایل دسترسی داشته باشیم.
چند متود کار با فایل:
برای کار کردن با فایلها از متدهای مختلفی استفاده میشود. اینجا چند متد رایج برای کار با فایلها در پایتون را توضیح میدهم:
1. open(): این متد برای باز کردن فایل استفاده میشود. میتوان مد دسترسی به فایل را مشخص کرد (مثل خواندن، نوشتن یا اضافه کردن).
1 2 3 |
<xmp>file = open('example.txt', 'r') # باز کردن فایل به صورت خواندن</xmp> |
2. read(): این متد محتوای فایل را به صورت رشته (string) بازمیگرداند.
1 2 3 4 |
<xmp>content = file.read() # خواندن محتوای کامل فایل </xmp> |
3. readline(): این متد یک خط از فایل را میخواند و به صورت رشته بازمیگرداند.
1 2 3 |
<xmp>line = file.readline() # خواندن یک خط از فایل</xmp> |
4. readlines(): این متد تمام خطوط فایل را به صورت یک لیست از رشتهها بازمیگرداند.
1 2 3 |
<xmp>lines = file.readlines() # خواندن همهی خطوط فایل به صورت لیست</xmp> |
5. write(): این متد میتواند محتوای جدیدی را به فایل بنویسد.
1 2 3 4 |
<xmp>file.write('Hello, World!') # نوشتن محتوا در فایل </xmp> |
6. close(): این متد فایل را میبندد و منابع اختصاص یافته به آن را آزاد میکند.
1 2 3 |
<xmp>file.close() # بستن فایل</xmp> |
7. with: این متد یک روش سادهتر برای کار با فایلها در پایتون است. فایل به طور خودکار بسته میشود، حتی اگر خطایی در میان کار رخ دهد.
1 2 3 4 5 |
<xmp>with open('example.txt', 'r') as file: content = file.read() # فایل به طور خودکار بسته میشود</xmp> |
این متدها امکان خواندن، نوشتن و دستکاری فایلها را در پایتون فراهم میکنند. همچنین میتوان از سایر متدها مانند seek()
برای جابجایی در فایل استفاده کرد.
مثال 2: خواندن خط به خط از یک فایل در مسیر جاری.
1 2 3 4 5 6 |
<xmp>filename = 'siddhartha.txt' with open(filename) as f_obj: for line in f_obj: print(line.rstrip())</xmp> |
متود rstrip() :
rstrip() یک متد در پایتون است که برای حذف کاراکترهای فضای خالی (space, tab, newline و غیره) از سمت راست (end) یک رشته استفاده میشود.
به عبارت دیگر، rstrip() یک رشته را تمیز میکند و فقط محتوای اصلی رشته را باقی میگذارد.
مثال 3: لیستی از محتوای فایل و نمایش ان.
1 2 3 4 5 6 7 |
<xmp>filename = 'siddhartha.txt' with open(filename) as f_obj: lines = f_obj.readlines() for line in lines: print(line.rstrip())</xmp> |
نوشتن در فایل :
ارسال آرگومان ‘w’ به open() به پایتون می گوید که می خواهید در فایل بنویسید. توجه کنید! با این کار محتویات فایل در صورتی که از قبل وجود داشته باشد پاک می شود. ارسال آرگومان ‘a’ به پایتون می گوید که می خواهید به انتهای یک فایل موجود اضافه کنید و محتوای قبلی از بین نمی روند.
مثال 4: نوشتن در فایل خالی.
1 2 3 4 5 |
<xmp>filename = 'programming.txt' with open(filename, 'w') as f: f.write("I love programming!")</xmp> |
1 2 3 4 5 6 7 |
<xmp>مثال 5: نوشتن چندین خط در یک فایل خالی. filename = 'programming.txt' with open(filename, 'w') as f: f.write("I love programming!n") f.write("I love creating new games.n")</xmp> |
توجه کنید! در دو مثال بالا محتویات قبلی فایل پاک شده و محتویات جدید در فایل خالی نوشته میشود.
مثال 6: نوشتن در انتهای فایل.
1 2 3 4 5 6 |
<xmp>filename = 'programming.txt' with open(filename, 'a') as f: f.write("I also love working with data.n") f.write("I love making apps as well.n")</xmp> |