کار کردن با محتویّات یک فایل
پس از آنکه فایل را خوانده و در حافظه قرار دادید، میتوانید هر کاری خواستید با آن دادهها انجام دهید، بنابراین بیایید رقمهای پی را به طور مختصر بررسی کنیم. ابتدا تلاش میکنیم که رشتهای بسازیم که شامل تمام رقمهای داخل فایل باشد و هیچ فاصلهی خالیای در آن نباشد.
مشابه کاری که در مثال قبل کردیم، فایل را باز میکنیم و هر خط از رقمها را در یک لیست ذخیره میکنیم. در ۱ متغیّر pi_string را میسازیم تا رقمهای pi را دربربگیرد. سپس حلقهای ایجاد میکنیم که هر خطّ از رقمها را به pi_string افزوده و کاراکتر خطّ جدید را از هر خط حذف میکند (۲). در ۳ رشته را چاپ میکنیم و طول آن را نمایش میدهیم:
متغیّر pi_string شامل فاصلههایی است که در سمت چپ رقمهای هر خط وجود دارد، امّا میتوانیم با بهکارگیری strip() به جای rstrip() از شرّ آنها خلاص شویم:
حال رشتهای داریم که عدد پی را تا ۳۰ رقم اعشار دربرمیگیرد. رشته ۳۲ حرف است چون علاوه بر رقمهای اعشار عدد ۳ و علامت اعشار را هم در خود دارد:
int() به عدد صحیح یا به کمک تابع float() به عدد اعشاری تبدیل کنید.فایلهای بزرگ: یک میلیون رقم اعشار
تا اینجا بر روی تحلیل فایلی متنی تمرکز کردهایم که تنها سه خط را شامل میشد امّا کد این مثالها میتوانند با فایلهای بسیار بزرگتر هم به خوبی کار کنند. اگر با فایلی متنی شروع کنیم که به جای ۳۰ رقم، عدد پی را تا یک میلیون رقم اعشار داشته باشد، میتوانیم رشتهای بسازیم که تمام این رقمها را دربربگیرد. نیاز به ایجاد هیچ تغییری در برنامه نیست به جز این که نام فایل ورودی را عوض کنیم. ما همچنین فقط ۵۰ رقم اوّل را چاپ میکنیم تا نیاز نباشد یک میلیون رقم را در ترمینال ببینیم:
خروجی نشان میدهد که رشتهای از عدد پی تا یک میلیون رقم اعشار داریم:
پایتون هیچ نوع محدودیّت ذاتی برای حجم دادهای که میخواهید با آن کار کنید، ندارد؛ میتوانید با هر چهقدر داده که حافظهی سیستم شما میتواند در خود جا دهد کار کنید.
https://nostarch.com/pythoncrashcourse2e را دریافت کنید.آیا تاریخ تولّد شما در عدد پی وجود دارد؟
من همیشه کنجکاو بودهام که بدانم آیا تاریخ تولّدم در جایی از رقمهای عدد پی وجود دارد یا نه. بیایید از برنامهای که الان نوشتیم استفاده کنیم تا ببینیم تاریخ تولّد فرد در یک میلیون رقم اعشار اوّل عدد پی وجود دارد یا نه. این کار را میتوانیم با بیان روز تولّد هر کس به صورت یک رشته و سپس جستوجوی آن رشته در pi_string انجام دهیم:
|
|
در ۱ از کاربر میخواهیم که تاریخ تولّد خود را وارد کند و در ۲ بررسی میکنیم که آیا آن رشته در pi_string وجود دارد یا نه. آن را امتحان میکنیم:
روز تولّد من در رقمهای اعشار پی پیدا شد! پس از این که فایلی را خواندید میتوانید محتویّات آن را به هر شکلی که تصوّر میکنیم تحلیل و بررسی کنید.