Python:
ইয়ামেল নিয়ে কাজ করা
কিভাবে:
Python এ YAML পড়া এবং লেখার জন্য সাধারণত তৃতীয়-পক্ষের লাইব্রেরির ব্যবহার প্রয়োজন হয়, PyYAML
সবচেয়ে জনপ্রিয়। শুরু করার জন্য, আপনাকে pip install PyYAML
চালানোর মাধ্যমে PyYAML ইনস্টল করা প্রয়োজন।
উদাহরণ: YAML ফাইলে লেখা
import yaml
data = {'a list': [1, 42, 3.141, 1337, 'help', u'€'],
'a string': 'boo!',
'another dict': {'foo': 'bar', 'key': 'value', 'the answer': 42}}
with open('example.yaml', 'w') as f:
yaml.dump(data, f, default_flow_style=False)
# এটি `example.yaml` ফাইলটি YAML ফরম্যাটে তথ্য স্ট্রাকচার সহ তৈরি করে।
উদাহরণ: YAML ফাইল থেকে পড়া
import yaml
with open('example.yaml', 'r') as f:
data_loaded = yaml.safe_load(f)
print(data_loaded)
# আউটপুট:
# {'a list': [1, 42, 3.141, 1337, 'help', '€'],
# 'a string': 'boo!',
# 'another dict': {'foo': 'bar', 'key': 'value', 'the answer': 42}}
কনফিগারেশনে YAML ব্যবহার
অনেক প্রোগ্রামার YAML ব্যবহার করে অ্যাপ্লিকেশন কনফিগারেশন পরিচালনা করে। এখানে একটি কনফিগ ফাইল কিভাবে স্ট্রাকচার করা যায় এবং পড়া যায় তার একটি উদাহরণ দেওয়া হল:
config.yaml:
database:
host: localhost
port: 5432
username: admin
password: secret
Python এ কনফিগ ফাইল পড়া:
import yaml
with open('config.yaml', 'r') as f:
config = yaml.safe_load(f)
print(config['database']['host']) # আউটপুট: localhost
জটিল স্ট্রাকচার হ্যান্ডেলিং
জটিল স্ট্রাকচারের জন্য, PyYAML আপনাকে কাস্টম Python অবজেক্ট ডিফাইন করার অনুমতি দেয়। তবে, অপ্রত্যাশিত ফাংশন বা অবজেক্ট চালানো থেকে বাঁচতে safe_load
ব্যবহার করা নিরাপদ।
import yaml
# একটি Python অবজেক্ট ডিফাইন করুন
class Example:
def __init__(self, value):
self.value = value
# কাস্টম কনস্ট্রাক্টর
def constructor_example(loader, node):
value = loader.construct_scalar(node)
return Example(value)
# ট্যাগ "!example" এর জন্য কনস্ট্রাক্টর যোগ করুন
yaml.add_constructor('!example', constructor_example)
yaml_str = "!example 'data'"
loaded = yaml.load(yaml_str, Loader=yaml.FullLoader)
print(loaded.value) # আউটপুট: data
এই স্নিপেটে, !example
হল একটি কাস্টম ট্যাগ যেটি একটি YAML স্ট্রিং থেকে মান ‘data’ সহ একটি Example
অবজেক্ট ইন্সট্যানট করার জন্য ব্যবহৃত। এইরকম কাস্টম লোডারস PyYAML এর নমনীয়তা বাড়ায়, আরো জটিল ডাটা স্ট্রাকচার এবং টাইপগুলি প্রসেসিং এর অনুমতি দিয়ে।