پاسخ تمرین فایل متنی در پایتون
در واقع، در این صفحه پاسخ تمرین فایل متنی در پایتون را همراه با کد کامل و توضیح میبینید.
| نام دوره | دوره آموزش پایتون مقدماتی |
| درسنامه | کار با text |
| تمرینها | مشاهده |
پاسخ تمرین ۱ – نوشتن و خواندن
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("خط اولn")
file.write("خط دومn")
file.write("خط سومn")
with open("notes.txt", "r", encoding="utf-8") as file:
print(file.read())
بنابراین پارامتر encoding="utf-8" را حتماً بنویسید. در ویندوز بدون آن، متن فارسی به هم میریزد یا خطای UnicodeDecodeError میگیرید.
همچنین، دقت کنید که write برخلاف print خودبهخود خط جدید نمیزند؛ باید n بنویسید.
پاسخ تمرین ۲ – خط به خط
with open("notes.txt", "r", encoding="utf-8") as file:
for number, line in enumerate(file, start=1):
print(number, line.strip())
1 خط اول
2 خط دوم
3 خط سوم
به این ترتیب، متد strip کاراکتر خط جدید انتهای هر خط را حذف میکند. بدون آن، بین خطوط فاصلهی اضافی میبینید.
علاوه بر این، حلقه روی فایل را ترجیح بدهید. تابع read کل فایل را در حافظه میریزد؛ برای فایل یک گیگابایتی فاجعه است.
پاسخ تمرین ۳ – افزودن
with open("notes.txt", "a", encoding="utf-8") as file:
file.write("خط چهارمn")
در نهایت، اگر به جای a از w استفاده کنید، هر سه خط قبلی پاک میشوند و فقط خط چهارم میماند. هیچ هشداری هم در کار نیست.
در واقع، این را جدی بگیرید. رایجترین راه از دست دادن داده در برنامههای تازهکارها همین یک حرف است.
پاسخ تمرین ۴ – شمارش کلمات
lines = 0
words = 0
with open("notes.txt", "r", encoding="utf-8") as file:
for line in file:
lines += 1
words += len(line.split())
print("خطوط:", lines)
print("کلمات:", words)
بنابراین متد split بدون ورودی، متن را از هر نوع فاصلهای جدا میکند و فاصلههای تکراری را هم درست مدیریت میکند.
پاسخ تمرین ۵ – دو اشتباه
همچنین، اول اینکه فایل بسته نشده. دوم اینکه encoding مشخص نشده.
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("سلام")
به این ترتیب، دستور with خودکار فایل را میبندد، حتی اگر وسط کار خطایی رخ دهد. دقیقاً همان کاری که در درس مدیریت خطا با finally انجام میدادید.
علاوه بر این، اگر فایل بسته نشود، ممکن است محتوا اصلاً روی دیسک نوشته نشود، چون پایتون نوشتن را بافر میکند.
در نهایت، برای مطالعهی بیشتر میتوانید به مستندات رسمی پایتون سر بزنید.