✍️ وقتی هر خط یک رکورد ساده است، اول متن را میخوانیم و بعد با splitlines به خطها تبدیل میکنیم. این متد جداکنندههای خط را از نتیجه حذف میکند، اما خط خالیِ میان متن را نگه میدارد. یک پایان خط در آخر متن بهتنهایی یک رکورد خالی تازه به خروجی اضافه نمیکند؛ این رفتار را با split('\n') اشتباه نگیر.
text = 'دفتر\n\nمداد\n'
lines = text.splitlines()
print(lines) # ['دفتر', '', 'مداد']
داخل فایل واقعی هم بعد از read همین عملیات روی رشته انجام میشود. هنوز هیچ فاصلهای از دو سر خطها پاک نشده؛ خطی مثل ' دفتر ' همین فاصلهها را دارد. پاکسازی مرحلهای جداست تا بتوانیم تصمیم بگیریم کدام نویسه واقعاً جزو داده است.
برای متن خالی، نتیجه فهرست خالی است. خطای رایج، شمردن آخرین پایان خط به عنوان یک فروش یا حذف همه خطهای خالی بدون دانستن قرارداد است. در بخش CSV خواهیم دید که یک رکورد حتی میتواند داخل نقلقول پایان خط داشته باشد؛ آنجا نباید پیش از parser متن را دستی به رکورد تقسیم کنیم. این درس فقط قالب متنی «یک رکورد در هر خط» را بررسی میکند.
فعالیت شما
مثال splitlines را بخوان؛ برای 'دفتر\n\nمداد\n' نتیجه ['دفتر','','مداد'] و برای متن خالی [] است. این گام خواندنی است.