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

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

دریافت ورودی و چاپ خروجی

فایل واحد منطقی ذخیره سازی داده ها بر روی دیسک است که توسط سیستم عامل مدیریت و نگهداری می شوند. سیستم فایل (File System) واحدی از (هسته) سیستم عامل است که وظیفه نگهداری، مدیریت، دسترسی و تغییرات فایل ها را بر عهده دارد.

فایل ها انواع مختلفی دارند ولی می توان آنها را به دو دسته فایل های متنی (Text Files) و فایل های باینری (Binary Files) دسته بندی کرد. اما در سیستم عامل های یونیکسی و شبه یونیکسی می توان فایل ها را به صورت دیگری دسته بندی کرد.

فایل های متنی که هر فرمتی را شامل می شوند. این فایل ها می توانند فایل های متنی، فایل های دودویی، فایل های HTML و فایل های با فرمت XML یا فایل های با فرمت CSV باشند. دایرکتوری ها خود نوع دیگری از فایل ها هستند. برخی از فایل ها را فایل های ویژه (Special Files) می گونید که شامل موارد زیر می شوند.

  • فایل های Pipe.
  • فایل های سوکت های یونیکسی (Unix Socket Files).
  • فایل های ابزارهای بلاکی (Block Devices) مانند فایل های مربوط به دیسک ها.
  • فایل های ابزارهای کاراکتری (Character Devices) مانند فایل های مربوط به ماوس.

این مطلب اشاره به فایل های متنی اسکی (ASCII) دارد. در پایتون برای خواندن از فایل ها و نوشتن بر روی فایل ها نیازی به ماژول یا کتابخانه مجزا نیست و خواندن از و نوشتن بر روی فایل ها بسیار ساده است.

برای خواندن از فایل یا نوشتن بر روی فایل، باید در ابتدا آن فایل را باز (Open) کنیم. در پایتون برای این کار از تابع درونی ()open استفاده می کنیم. این تابع دو آرگومان ورودی دریافت می کند، آرگومان اول مسیر و نام فایل و آرگومان دوم حالتی (Mode) است که فایل برای آن باز خواهد شد.

در سیستم عامل های یونیکسی و شبه یونیکسی مانند لینوکس، مکینتاش، سولاریس و FreeBSD زمانی که یک فایل را برای خواندن یا نوشتن باز می کنیم، سیستم عامل یک عدد صحیح مثبت و منحصر به فرد را به آن اختصاص می دهد که آنرا File Descriptor می گویند. در واقع این عدد به فایل باز شده اشاره می کند.

سه File Descriptor پیشفرض که File Descriptor های استاندارد (Standard File Descriptors) نیز نامیده می شوند اعداد 0، 1 و 2 را به صورت پیشفرض دریافت کرده اند. عدد صفر معرف Stdin یا Standard Input، عدد 1 معرف Stdout یا Standard Output و عدد 2 معرف Stderr یا Standard Error است. پس زمانی که توسط تابع ()open یک فایل را باز می کنید عدد 3 به عنوان File Descriptor به آن اعطا می شود و الی آخر.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *