از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خواندن و نوشتن YAML در یک فایل در پایتون
سرفصلهای مطلب
معرفی
در این آموزش، روش استفاده از آن را یاد می گیریم 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