اردیبهشت 9, 1403

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

در این مقاله در مورد مدیریت فایل ها با پایتون، نحوه استفاده از ماژول سیستم عامل پایتون و نحوه پیمایش در میان فایل ها و دایرکتوری های محلی را خواهید آموخت. همچنین نحوه باز کردن، خواندن، نوشتن و بستن فایل‌ها در پایتون را خواهید آموخت. آیا برای طراح وب سایت خیلی پیر هستید؟

مدیریت فایل روش خوبی برای حفظ داده ها پس از پایان برنامه است. داده های یک برنامه کامپیوتری در یک فایل ذخیره می شود و بعدا می توان به آنها دسترسی داشت. پایتون، مانند بسیاری از زبان های برنامه نویسی دیگر، روش های مفیدی را برای ایجاد، باز کردن، خواندن و نوشتن داده ها در یک فایل ارائه می دهد.

محتوا:

  1. مدیریت فایل در پایتون: فایل‌ها و مسیرهای فایل
  2. مدیریت فایل در پایتون: خواندن و نوشتن داده‌ها

مدیریت فایل در پایتون: فایل ها و مسیرهای فایل

فایل ها جایگزین های سریعی برای ماندگاری داده ها از یک برنامه کامپیوتری هستند. حافظه با دسترسی تصادفی (RAM) فقط می تواند داده ها را به طور موقت ذخیره کند، زیرا تمام داده های قبلی بلافاصله پس از خاموش شدن سیستم رایانه از بین می روند. فایل‌ها ترجیح داده می‌شوند، زیرا محل ذخیره‌سازی دائمی داده‌ها در رایانه هستند. پرونده مکانی روی دیسک محلی است که داده‌ها در آن ذخیره می‌شوند. این دو ویژگی اساسی دارد: نام فایل و مسیر آن.

استفاده از ماژول سیستم عامل

Python یک ماژول سیستم عامل داخلی برای تعامل با سیستم عامل رایانه ما ارائه می دهد. ماژول سیستم عامل دارای رابط‌هایی (توابع) است که به انجام عملیاتی مانند پیمایش در فهرست‌ها و فایل‌ها در پایتون، ایجاد پوشه‌ها، شناسایی مسیرهای فایل و غیره کمک می‌کند.

برای استفاده از ماژول سیستم عامل، آن را مطابق شکل زیر به برنامه خود وارد می کنیم:

وارد کردن سیستم عامل

نحوه دریافت دایرکتوری کاری فعلی

با استفاده از روش getcwd() می توانیم دایرکتوری فعلی (“cwd”) را در پایتون دریافت کنیم. این متد مسیر دایرکتوری را که در حال حاضر در آن کار می کنیم به صورت رشته ای برمی گرداند، همانطور که در قطعه کد زیر نشان داده شده است:

وارد کردن سیستم عامل

دایرکتوری = os.getcwd()
چاپ(دایرکتوری)
>>>>
/home/ini/Dev/آموزش/sitepoint

مسیرهای مطلق در مقابل نسبی

مسیرهای فایل را می توان به دو صورت مشخص کرد: یا با مسیر مطلق یا مسیر نسبی آنها. هر دو مسیر به محل فایل فعلی اشاره می کنند.

مسیر مطلق یک فایل، مسیر آن را اعلام می‌کند که با پوشه ریشه شروع می‌شود. یک مسیر مطلق به این شکل است:

/home/ ini/Dev/آموزش/sitepoint/filehandling.py

پوشه ریشه (همانطور که در کد بالا مشاهده می شود) home در سیستم عامل لینوکس است.

مسیر نسبی یک فایل، مسیر خود را در رابطه با دایرکتوری کاری فعلی اعلام می‌کند. بیایید یک مثال ببینیم:

./sitepoint /filehandling.py

کد بالا مسیر نسبی فایل پایتون را نشان می دهد filehandling.py.

نحوه ایجاد دایرکتوری در پایتون

ماژول سیستم عامل دارای یک روش mkdir() برای ایجاد پوشه ها یا دایرکتوری های جدید در پایتون است. متد mkdir() یک آرگومان – نامی برای دایرکتوری – در دایرکتوری فعلی به عنوان یک رفتار پیش‌فرض ایجاد می‌کند. کد زیر را ببینید:

وارد کردن سیستم عامل

os.mkdir("عکس‌ها")

با این حال، می‌توانیم با تعیین مسیر فایل، دایرکتوری‌ها را در مکان دیگری ایجاد کنیم. در مثال کد زیر، یک پوشه projects در پوشه Tutorial ایجاد شده است:

os.mkdir("/home/ini/Dev/Tutorial/projects")

وقتی داخل پوشه Tutorial را بررسی می کنیم، پوشه projects تازه ایجاد شده را پیدا می کنیم.

نحوه تغییر دایرکتوری کاری فعلی

برای جابه‌جایی بین فهرست‌ها، از روش chdir() استفاده کنید. مسیر جدید به عنوان یک آرگومان برای متد ارسال می‌شود تا از دایرکتوری فعلی به یکی دیگر تغییر کند.

پس از ایجاد یک پوشه جدید در نمونه کد قبلی، می توانیم پوشه را به پوشه projects تغییر دهیم:

وارد کردن سیستم عامل

os.chdir("/home/ini/Dev/Tutorial/projects ")

برای تایید تغییر در دایرکتوری، از روش getcwd() استفاده کنید، که یک رشته از دایرکتوری کاری فعلی را برمی گرداند: /home/ini/Dev./Tutorial/projects.

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

فایل‌ها و دایرکتوری‌ها را می‌توان در پایتون با استفاده از روش‌های remove() و rmdir() ماژول سیستم‌عامل در پایتون حذف کرد.

برای حذف فایل‌ها در پایتون، مسیر فایل را در روش os.remove() وارد کنید. هنگام حذف فایل ها، اگر فایل وجود نداشته باشد، برنامه FileNotFoundError را پرتاب می کند.

اجازه دهید یک مثال کد بزنیم:

وارد کردن سیستم عامل

os.remove("random.txt")

برای حذف یا حذف یک دایرکتوری، از os.rmdir() استفاده کنید، از مسیر دایرکتوری که باید حذف شود استفاده کنید، مانند:

وارد کردن سیستم عامل

os.rmdir("/home/ini/Dev/Tutorial/projects ")

پوشه پروژه‌ها از پوشه Tutorial حذف می‌شود.

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

برای دریافت نمای کلی از تمام محتوای یک فهرست، از روش os.listdir() استفاده کنید. این روش فهرستی از تمام فایل‌ها و دایرکتوری‌های موجود در آن پوشه خاص را برمی‌گرداند:

وارد کردن سیستم عامل

چاپ(os.listdir())
>>>>
['array.py'، 'unittesting.py'، 'search_replace.py'، '__pycache__'، ' pangram.txt'، '.pytest_cache'، 'exception.py'، 'files.py'، 'regex.py'، 'filehandling.py']

مدیریت فایل در پایتون: خواندن و نوشتن داده ها

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

  • r: فایلی را برای خواندن باز می کند. حالت خواندن زمانی که فایل وجود ندارد خطا می دهد.
  • r+: فایل را برای خواندن و نوشتن داده ها در یک شی فایل باز می کند. اگر فایل وجود نداشته باشد، خطا رخ می دهد.
  • w: یک فایل در این حالت برای نوشتن داده باز می شود. حالت نوشتن داده‌های موجود را نادیده می‌گیرد و در صورت عدم وجود یک شی فایل جدید ایجاد می‌کند.
  • w+: فایلی را برای خواندن و نوشتن داده ها باز می کند. وقتی در این حالت باز می شود، داده های موجود روی فایل لغو می شود.
  • a: حالت الحاق در صورت وجود فایل به فایل اضافه می شود. همچنین اگر فایلی موجود نباشد، یک فایل جدید ایجاد می کند. داده‌های موجود را لغو نمی‌کند.
  • a+: این حالت فایلی را برای افزودن و خواندن داده ها باز می کند.
  • x: حالت ایجاد برای ایجاد فایل‌ها در پایتون استفاده می‌شود. اگر فایل وجود داشته باشد، خطا رخ می دهد.
این مقاله را هم بخوانید :   اعزام دانشجو و پذیرش تحصیلی

افزودن b به هر یک از حالت‌های دسترسی، آن را از قالب متن پیش‌فرض به یک قالب باینری تغییر می‌دهد (به عنوان مثال، rb، rb+ ، wb و غیره).

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

برای باز کردن یک فایل در پایتون، از تابع open() استفاده می شود. حداقل دو آرگومان – نام فایل و شرح حالت – را می گیرد و یک شی فایل را برمی گرداند. به‌طور پیش‌فرض، یک فایل برای خواندن در حالت متنی باز می‌شود، اما می‌توانیم تعیین کنیم که آیا به جای آن حالت باینری را می‌خواهیم.

یک نحو ساده برای باز کردن یک فایل به این صورت است:

f = باز ('نام فایل'، 'حالت')

پس از این مرحله، همانطور که در کد بالا مشاهده می‌شود، می‌توانیم عملیات خواندن-نوشتن خود را روی شی فایل شروع کنیم. در حالت پیش‌فرض، فایل‌ها همیشه در حالت متنی مدیریت می‌شوند.

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

پس از باز شدن یک شی فایل و انجام عملیات پردازش فایل، فایل را می بندیم. این اغلب آخرین مرحله در خواندن یا نوشتن فایل ها در پایتون است. شیء فایل close() برای بستن فایل‌های باز شده قبلی استفاده می‌شود.

بستن فایل ها در پایتون به این صورت است:

f = باز ('نام فایل'، 'حالت')
// پرونده عملیات، خواندن، نوشتن یا الحاق
f.close()

عبارت with

بستن فایل‌ها پس از باز شدن و انجام عملیات فایل، یک روش استاندارد است. ممکن است پس از باز شدن برخی از فایل‌ها، بسته شدن آنها را از دست بدهید.

عبارت with پس از تکمیل آخرین عملیات مدیریت فایل در محدوده خود، به طور خودکار فایل ها را می بندد. به عنوان مثال:

با باز('random.txt'، 'r') به عنوان f: 
    چاپ(f.خواندن())
>>>>
سلام دنیا!
سلام دنیا!

همانطور که در قطعه کد بالا مشاهده می شود، عبارت with به طور ضمنی فایل را پس از عبارت print می بندد.

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

چند راه برای خواندن داده ها از یک فایل در پایتون وجود دارد. می‌توانیم محتوای یک فایل را با استفاده از روش‌های read()، readline() و readlines() بخوانیم.

روش read()

روش read() رشته‌ای از تمام کاراکترهای فایل در حال خواندن را برمی‌گرداند. اشاره گر در ابتدای محتوای فایل قرار می گیرد. حالت پیش فرض خواندن از ابتدای فایل تا انتهای فایل است، به جز جایی که تعداد کاراکترها مشخص شده باشد.

به قطعه کد زیر نگاهی بیندازید:

f = باز ('random.txt'، 'r')
چاپ(f.خواندن())
f.close()
>>>>
این  یک متن تصادفی است.
در اینجا  خط دوم است.
آسمان آبی است.
گل رز قرمز است.

ما می توانیم تعیین کنیم که چند کاراکتر از فایل متنی خوانده شود. به سادگی تعداد کاراکترها را به عنوان آرگومان به متد read() ارسال کنید:

f = باز ('random.txt'، 'r')
چاپ(f.خواندن(12))
f.close()
>>>>
این  برخی است

همانطور که در مثال بالا مشاهده می شود، مفسر فقط دوازده کاراکتر از کل فایل را می خواند.

روش readline()

این روش هر بار یک خط از یک فایل را می خواند. از ابتدای فایل خوانده می شود و در جایی که یک کاراکتر خط جدید پیدا می شود متوقف می شود. نمونه کد زیر را ببینید:

f = باز ('random.txt'، 'r')
چاپ(f.readline())
f.close()
>>>>
این  یک متن تصادفی است.

روش readlines()

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

f = باز ('random.txt'، 'r')
چاپ(f.readlines())
f.close()
>>>>
['این یک متن تصادفی است.n'، 'اینجا خط دوم است.n'، 'آسمان آبی است.n'، 'رزها قرمز هستند.']

توجه: تمام روش‌های خواندن جریان فایل پس از رسیدن به انتهای فایل، مقدار خالی را برمی‌گردانند. روش seek() مکان‌نمای فایل را به ابتدای فایل برمی‌گرداند.

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

روش write() در پایتون هنگام تلاش برای نوشتن داده در یک فایل مفید است. برای نوشتن روی یک فایل باز شده، حالت دسترسی باید روی یکی از موارد زیر تنظیم شود: w، w+، a، a+ و غیره. بار دیگر، پیش‌فرض حالت متنی است تا باینری.

روش write()

هنگامی که می‌خواهیم داده‌ها را در یک فایل متنی بنویسیم، آرگومان رشته‌ای را به این متد ارسال کنیم. به یاد داشته باشید که در صورت وجود فایل، حالت نوشتن، داده های موجود را لغو می کند:

f = باز ('random.txt'، 'w')
f.write("سلام دنیا!")
f.close()

روش writelines()

این روش به ما کمک می کند تا چندین رشته را به یک فایل متنی به طور همزمان وارد کنیم. می‌توانیم با ارسال لیست به‌عنوان آرگومان متد، چندین خط رشته را در یک فایل در یک فایل بنویسیم:

کلمات = [ 'آسمان آبی است'، 'nرزها قرمز هستند']

f = باز('random.txt'، 'w' )
f.writelines(کلمات)
f.close()

کد بالا یک فایل بسته را نشان می‌دهد که باز می‌شود و برخی از خطوط در یک لیست کلمه به یکباره در فایل متنی random.txt درج می‌شوند.

نتیجه گیری

دو ویژگی مهم در مورد یک فایل وجود دارد: نام فایل و مسیر آن. ماژول سیستم عامل به ما کمک می کند تا در میان دایرکتوری ها حرکت کنیم و عملیات خاصی را انجام دهیم. مدیریت فایل پایتون شامل استفاده از چندین روش برای باز کردن، ایجاد، خواندن، و نوشتن داده‌ها بر روی اشیاء فایل است. /p>

اگر می‌خواهیم با محتوای داخل متن یا فایل‌های باینری تعامل داشته باشیم، درک نحوه مدیریت فایل در پایتون نیز مهم است. همیشه مطمئن شوید که پس از انجام عملیات روی آنها فایل ها را ببندید. دستور with انجام مدیریت فایل در پایتون را آسان‌تر می‌کند، زیرا به طور ضمنی اشیاء فایل را پس از اتمام کار می‌بندد.
مطالب مرتبط:
منبع :

https://cloudonlinenic.ir/آیا-برای-طراح-وب-سایت-خیلی-پیر-هستید؟/