کار با فایل متنی در پایتون

Please login to bookmark Close

فایل متنی در پایتون

در واقع، در این درس فایل متنی در پایتون را از پایه و با مثال یاد می‌گیرید.

بنابراین تا اینجا هر داده‌ای که داشتید، داخل خود کد بود یا از کاربر گرفته می‌شد. مشکل این است که به محض تمام شدن برنامه، همه‌چیز پاک می‌شود.

همچنین، برای اینکه داده بماند، باید جایی ذخیره‌اش کنید. ساده‌ترین جا، یک فایل متنی است.

خواندن فایل

with open("notes.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)

به این ترتیب، سه چیز در این خط هست که باید توضیح دهم.

علاوه بر این، حرف "r" یعنی حالت خواندن. عبارت encoding="utf-8" برای ما فارسی‌زبان‌ها حیاتی است؛ بدونش در ویندوز متن فارسی به هم می‌ریزد. در تدریس‌هایم مدام این مشکل را دیده‌ام.

در نهایت، و مهم‌تر از همه، with. فایل بعد از کار باید بسته شود و with این کار را خودکار انجام می‌دهد، حتی اگر وسط کار خطایی رخ دهد. دقیقاً همان کاری که در درس مدیریت خطا با finally انجام می‌دادید.

خواندن خط به خط

with open("notes.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

در واقع، این روش را ترجیح بدهید. تابع read کل فایل را یکجا در حافظه می‌ریزد؛ اگر فایل یک گیگابایت باشد، برنامه خفه می‌شود. حلقه روی فایل، خط به خط می‌خواند.

بنابراین متد strip هم فاصله‌ها و کاراکتر خط جدید را از دو سر متن حذف می‌کند.

نوشتن در فایل

with open("notes.txt", "w", encoding="utf-8") as file:
    file.write("خط اولn")
    file.write("خط دومn")

همچنین، حالت "w" یک خطر جدی دارد: اگر فایل از قبل وجود داشته باشد، کل محتوایش پاک می‌شود و هیچ هشداری هم در کار نیست. اگر می‌خواهید به انتها اضافه کنید، از "a" استفاده کنید:

with open("notes.txt", "a", encoding="utf-8") as file:
    file.write("خط سومn")

حالت‌های باز کردن فایل

اگر فایل نباشدکارکردحالت
خطا می‌دهدخواندنr
می‌سازدنوشتن از اول (پاک می‌کند)w
می‌سازدافزودن به انتهاa
می‌سازدساختن فایل جدیدx
حالت‌های تابع open

وقتی فایل نیست

FileNotFoundError: [Errno 2] No such file or directory: 'notes.txt'

به این ترتیب، این دقیقاً جایی است که درس مدیریت خطا به کار می‌آید:

try:
    with open("notes.txt", "r", encoding="utf-8") as file:
        print(file.read())
except FileNotFoundError:
    print("فایل یادداشت‌ها هنوز ساخته نشده است")

جمع‌بندی

در واقع، همیشه با with کار کنید، همیشه encoding="utf-8" بنویسید، و حواستان باشد که حالت w محتوای قبلی را پاک می‌کند.

در درس بعدی سراغ فایل‌هایی می‌رویم که ساختار جدولی دارند.

برای مطالعه‌ی بیشتر می‌توانید به مستندات رسمی پایتون سر بزنید.

این درس بخشی از دوره آموزش پایتون مقدماتی است.

Please login to bookmark Close
پیشرفت شما در «دوره آموزش پایتون مقدماتی» (90%)
نظرات

دیدگاهتان را بنویسید

90%
پیشرفت

سرفصل دوره

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم