خواندن و ویرایش فایل
بازکردن فایل (open)
fhand = open('mbox.txt')- خروجی یک handle به فایله، نه محتوای واقعی — برای خوندن ازش استفاده میشه
- اگه فایل وجود نداشته باشه → خطا:
FileNotFoundError
حالتهای open()
| حالت | کاربرد |
|---|---|
'r' |
خواندن (پیشفرض) |
'w' |
نوشتن — ⚠️ محتوای قبلی فایل پاک میشه |
'a' |
append — اضافهکردن به انتهای فایل، بدون پاک کردن محتوای قبلی |
'x' |
ساخت فایل جدید — اگه از قبل وجود داشته باشه خطا میده |
خواندن فایل
روش ۱: خط به خط با for (برای فایلهای بزرگ)
fhand = open('mbox.txt')
count = 0
for line in fhand:
count += 1
print('Line Count:', count)روش ۲: خواندن کل فایل یکجا (برای فایلهای کوچک)
fhand = open('mbox.txt')
inp = fhand.read()
print(len(inp))- ⚠️ نکته: محتوا رو حتماً توی متغیر ذخیره کنیم، وگرنه با خواندن مجدد از دست میره
جستجو در فایل
fhand = open('mbox.txt')
for line in fhand:
line = line.rstrip()
if line.startswith('From:'):
print(line)rstrip(): حذف فضای خالی سمت راست رشتهstartswith(): بررسی شروع خط با یک کلمه/رشته خاص
گرفتن نام فایل از کاربر + مدیریت خطا
- بهجای هاردکد کردن نام فایل، از کاربر میگیریم — ولی چون فایل ممکنه وجود نداشته باشه، حتماً با
try-exceptپوشش بدیم
fname = input('Enter the file name: ')
try:
fhand = open(fname)
except:
print('File cannot be opened:', fname)
exit()exit(): خروج کامل از اجرای برنامه اگه فایل باز نشد
نوشتن در فایل
fout = open('output.txt', 'w')- پارامتر
'w':- اگه فایل وجود داشته باشه → باز میشه برای نوشتن (⚠️ محتوای قبلی پاک میشه)
- اگه وجود نداشته باشه → فایل جدید ساخته میشه
line1 = "This here's the wattle,\n"
fout.write(line1)بستن فایل
fout.close()- بعد از اتمام کار با فایل، همیشه باید بسته بشه
روش استاندارد و توصیهشده: with open(...) as f:
- جزوه روش دستی (باز کردن +
close()دستی) رو نشون داده، ولی در عمل استفاده ازwithرایجتره - مزیت: فایل خودکار بسته میشه، حتی اگه وسط کار خطا رخ بده — نیازی به
close()دستی نیست
with open('mbox.txt') as fhand:
for line in fhand:
print(line.rstrip())
# اینجا فایل خودش بسته شدهwith open('output.txt', 'w') as fout:
fout.write("This here's the wattle,\n")