পাইথনেরстан্ডার্ড লাইব্রেরির configparser` মডিউলটি কনফিগারেশন ফাইল পড়া ও লেখার ফাংশনালিটি সংজ্ঞায়িত করে, যা মাইক্রোসফট উইন্ডোজ ওএস দ্বারা ব্যবহৃত হয়। এই ফাইলগুলোর এক্সটেনশন সাধারণত `.INI`।
আইএনআই ফাইলটি সেকশন দিয়ে গঠিত, প্রতিটি সেকশন `[section]` হেডার দিয়ে শুরু হয়। স্কোয়ার ব্র্যাকেটের মধ্যে সেকশনের নাম থাকে। সেকশনের পর কী/ভ্যালু এন্ট্রি থাকে যা `=` বা `:` ক্যারেক্টার দ্বারা পৃথক করা হয়। এতে কমেন্টও থাকতে পারে, যা `#` বা `;` সিম্বল দিয়ে শুরু হয়। একটি নমুনা আইএনআই ফাইল নিচে দেখানো হলো:
[Settings] # অতিরিক্ত ডিবাগিং ইনফো জন্য বিস্তারিত লগ সেট করুন DetailedLog=1 RunStatus=1 StatusPort=6090 StatusRefresh=10 Archive=1 # MV_FTP লগ ফাইলের লোকেশন সেট করুন LogFile=/opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log Version=0.9 Build 4 ServerName=Unknown [FTP] # FTP সার্ভার সক্রিয় করুন RunFTP=1 # FTP কন্ট্রোল পোর্ট সংজ্ঞায়িত করুন FTPPort=21 # FTP ডেটা ডিরেক্টরির লোকেশন সেট করুন FTPDir=/opt/ecs/mvuser/MV_IPTel/data/FTPdata # অ্যাডমিন নাম সেট করুন UserName=admin # পাসওয়ার্ড সেট করুন Password=admin
`configparser` মডিউলে `ConfigParser` ক্লাস আছে। এটি কনফিগারেশন ফাইলগুলোর তালিকা পার্স করার এবং পার্স করা ডেটাবেস পরিচালনার জন্য দায়ী।
`ConfigParser` অবজেক্ট নিচের স্টেটমেন্ট দিয়ে তৈরি করা হয়:
parser = configparser.ConfigParser()
এই ক্লাসে নিচের মেথডগুলো সংজ্ঞায়িত:
| sections() | সমস্ত কনফিগারেশন সেকশনের নাম রিটার্ন করে। |
| has_section() | নির্দিষ্ট সেকশন আছে কিনা তা রিটার্ন করে। |
| has_option() | নির্দিষ্ট সেকশনে নির্দিষ্ট অপশন আছে কিনা তা রিটার্ন করে। |
| options() | নামনির্দিষ্ট সেকশনের জন্য কনফিগারেশন অপশনগুলোর তালিকা রিটার্ন করে। |
| read() | নামনির্দিষ্ট কনফিগারেশন ফাইল পড়ে এবং পার্স করে। |
| read_file() | ফাইল অবজেক্ট হিসেবে দেওয়া একটি কনফিগারেশন ফাইল পড়ে এবং পার্স করে। |
| read_string() | দেওয়া স্ট্রিং থেকে কনফিগারেশন পড়ে। |
| read_dict() | ডিকশনারি থেকে কনফিগারেশন পড়ে। কীগুলো সেকশনের নাম, ভ্যালুগুলো সেকশনে থাকা কী-ভ্যালু জোড়ার ডিকশনারি। |
| get() | নামনির্দিষ্ট অপশনের জন্য স্ট্রিং ভ্যালু রিটার্ন করে। |
| getint() | `get()`-এর মতো, কিন্তু ভ্যালুকে ইন্টিজারে কনভার্ট করে। |
| getfloat() | `get()`-এর মতো, কিন্তু ভ্যালুকে ফ্লোটে কনভার্ট করে। |
| getboolean() | `get()`-এর মতো, কিন্তু ভ্যালুকে বুলিয়ানতে কনভার্ট করে। `False` বা `True` রিটার্ন করে। |
| items() | সেকশনে প্রতিটি অপশনের জন্য (নাম, ভ্যালু) টাপলের তালিকা রিটার্ন করে। |
| remove_section() | নির্দিষ্ট ফাইল সেকশন এবং এর সব অপশন মুছে দেয়। |
| remove_option() | নির্দিষ্ট সেকশন থেকে নির্দিষ্ট অপশন মুছে দেয়। |
| set() | নির্দিষ্ট অপশন সেট করে। |
| write() | .ini ফরম্যাটে কনফিগারেশন স্টেট লিখে। |
নিচের স্ক্রিপ্টটি `sampleconfig.ini` ফাইলটি পড়ে এবং পার্স করে:
import configparser
parser = configparser.ConfigParser()
parser.read('sampleconfig.ini')
for sect in parser.sections():
print('Section:', sect)
for k,v in parser.items(sect):
print(' {} = {}'.format(k,v))
print()
আউটপুট
Section: Settings detailedlog = 1 runstatus = 1 statusport = 6090 statusrefresh = 10 archive = 1 logfile = /opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log version = 0.9 Build 4 servername = Unknown Section: FTP runftp = 1 ftpport = 21 ftpdir = /opt/ecs/mvuser/MV_IPTel/data/FTPdata username = admin password = admin
`write()` মেথডটি কনফিগারেশন ফাইল তৈরি করতে ব্যবহৃত হয়। নিচের স্ক্রিপ্টটি পার্সার অবজেক্ট কনফিগার করে এবং `test.ini` ফাইলে লিখে:
import configparser
parser = configparser.ConfigParser()
parser.add_section('Manager')
parser.set('Manager', 'Name', 'Ashok Kulkarni')
parser.set('Manager', 'email', 'ashok@gmail.com')
parser.set('Manager', 'password', 'secret')
fp = open('test.ini', 'w')
parser.write(fp)
fp.close()