وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

خواندن و نوشتن YAML در یک فایل در پایتون

0 52
زمان لازم برای مطالعه: 4 دقیقه


معرفی

در این آموزش، روش استفاده از آن را یاد می گیریم YAML کتابخانه در پایتون 3. YAML مخفف یک زبان نشانه گذاری دیگر.

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

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

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

نصب و راه اندازی

نصب process برای YAML نسبتاً مستقیم است. دو راه برای انجام آن وجود دارد؛ ابتدا با آسان شروع می کنیم:

روش 1: از طریق پیپ

ساده ترین راه برای نصب کتابخانه YAML در پایتون از طریق pip مدیر بسته اگر تو داری pip برای دانلود و نصب YAML که در سیستم شما نصب شده است، دستور زیر را اجرا کنید:

$ pip install pyyaml

روش 2: از طریق Source

در صورتی که ندارید pip نصب شده، یا با مشکلی در روش بالا مواجه هستید، می توانید به کتابخانه مراجعه کنید منبع page. مخزن را به صورت فایل فشرده دانلود کنید، آن را باز کنید terminal یا خط فرمان، و به دایرکتوری که فایل در آن دانلود شده است بروید. هنگامی که آنجا هستید، دستور زیر را اجرا کنید:

$ python setup.py install

نمونه کد YAML

در این بخش، روش مدیریت (دستکاری) فایل‌های YAML را یاد می‌گیریم، با روش خواندن آنها شروع می‌کنیم، یعنی چگونه آنها را در اسکریپت پایتون بارگذاری کنیم تا بتوانیم مطابق با نیاز خود از آنها استفاده کنیم. بنابراین، بیایید شروع کنیم.

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

در این قسمت روش خواندن فایل های YAML در پایتون را خواهیم دید.

بیایید با ساخت دو فایل با فرمت YAML شروع کنیم.

محتویات فایل اول به شرح زیر است:



apples: 20
mangoes: 2
bananas: 3
grapes: 100
pineapples: 1

محتویات فایل دوم به شرح زیر است:



sports:

  - soccer
  - football
  - basketball
  - cricket
  - hockey
  - table tennis

countries:

  - Pakistan
  - USA
  - India
  - China
  - Germany
  - France
  - Spain

می توانید ببینید که fruits.yaml و categories.yaml فایل ها حاوی انواع مختلفی از داده ها هستند. اولی فقط حاوی اطلاعات یک نهاد، یعنی میوه ها است، در حالی که دومی حاوی اطلاعاتی درباره ورزش و کشورها است.

اکنون سعی می کنیم داده های دو فایلی را که با استفاده از اسکریپت پایتون ایجاد کرده ایم، بخوانیم. این load() روش از yaml ماژول را می توان برای خواندن فایل های YAML استفاده کرد. به اسکریپت زیر نگاه کنید:



import yaml

with open(r'E:\data\fruits.yaml') as file:
    
    
    fruits_list = yaml.load(file, Loader=yaml.FullLoader)

    print(fruits_list)

خروجی:

{ 'apples': 20, 'mangoes': 2, 'bananas': 3, 'grapes': 100, 'pineapples': 1 }

در اسکریپت بالا مشخص کردیم yaml.FullLoader به عنوان ارزش برای Loader پارامتری که زبان YAML کامل را بارگیری می کند و از اجرای کد دلخواه اجتناب می کند. به جای استفاده از load تابع و سپس عبور yaml.FullLoader به عنوان ارزش برای Loader پارامتر، شما همچنین می توانید استفاده کنید full_load() تابع، همانطور که در مثال بعدی خواهیم دید.

حالا بیایید سعی کنیم فایل دوم YAML را به روشی مشابه با استفاده از اسکریپت پایتون بخوانیم:



import yaml

with open(r'E:\data\categories.yaml') as file:
    documents = yaml.full_load(file)

    for item, doc in documents.items():
        print(item, ":", doc)

از آنجایی که 2 سند در categories.yaml فایل، ما یک حلقه برای خواندن هر دوی آنها اجرا کردیم.

خروجی:

sports : ('soccer', 'football', 'basketball', 'cricket', 'hockey', 'table tennis')
countries : ('Pakistan', 'USA', 'India', 'China', 'Germany', 'France', 'Spain')

همانطور که از دو مثال آخر می بینید، کتابخانه به طور خودکار تبدیل داده های فرمت شده YAML به فرهنگ لغت ها و لیست های پایتون را انجام می دهد.

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

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

import yaml

dict_file = ({'sports' : ('soccer', 'football', 'basketball', 'cricket', 'hockey', 'table tennis')},
{'countries' : ('Pakistan', 'USA', 'India', 'China', 'Germany', 'France', 'Spain')})

with open(r'E:\data\store_file.yaml', 'w') as file:
    documents = yaml.dump(dict_file, file)

این dump() متد دیکشنری پایتون را به عنوان اولین و یک شی File را به عنوان پارامتر دوم می گیرد.

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



- sports:

  - soccer
  - football
  - basketball
  - cricket
  - hockey
  - table tennis
- countries:

  - Pakistan
  - USA
  - India
  - China
  - Germany
  - France
  - Spain

یکی دیگر از قابلیت های مفیدی که کتابخانه YAML برای آن ارائه می دهد dump() روش است sort_keys پارامتر. برای نشان دادن آنچه که انجام می دهد، اجازه دهید آن را اعمال کنیم روی اولین فایل ما، یعنی fruits.yaml:

import yaml

with open(r'E:\data\fruits.yaml') as file:
    doc = yaml.load(file, Loader=yaml.FullLoader)

    sort_file = yaml.dump(doc, sort_keys=True)
    print(sort_file)

خروجی:

apples: 20
bananas: 3
grapes: 100
mangoes: 2
pineapples: 1

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

نتیجه

در این آموزش کوتاه، روش نصب کتابخانه YAML پایتون (PyYAML) را برای دستکاری فایل های فرمت شده YAML یاد گرفتیم. ما بارگذاری محتویات یک فایل YAML در برنامه پایتون خود را به عنوان فرهنگ لغت، و همچنین سریال سازی لغت نامه های Python در فایل های YAML و ذخیره کلیدهای آنها را پوشش دادیم. این کتابخانه کاملاً مختصر است و فقط عملکردهای اساسی را ارائه می دهد.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-20 10:55:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید