একটি ডিক্ট একটি ফাইলে সংরক্ষণ করুন

Save Dict File



ডিকশনারি পাইথনের একটি খুব বিখ্যাত বস্তু। এবং এটি কী এবং মানগুলির একটি সংগ্রহ। ডিক্টের কী অবশ্যই অপরিবর্তনীয়, এবং এটি পূর্ণসংখ্যা, ভাসমান, স্ট্রিং হতে পারে, কিন্তু একটি তালিকা বা একটি ডিক্ট নিজেই একটি কী হতে পারে না। সুতরাং, কখনও কখনও আমাদের ডিক্ট অবজেক্টগুলিকে একটি ফাইলে সংরক্ষণ করতে হবে। সুতরাং আমরা একটি ফাইলে একটি ডিক্ট অবজেক্ট সংরক্ষণ করার বিভিন্ন পদ্ধতি দেখতে যাচ্ছি।

আমরা পাইথনে একটি ফাইলে অভিধান লিখতে পারি বিভিন্ন উপায়ে যেমন:







  1. কমা দ্বারা বিভক্ত মান ফাইল (.csv)
  2. Json ফাইল (.json)
  3. টেক্সট ফাইল (.txt)
  4. আচার ফাইল (.pkl)

আমরা উপরের সমস্ত পদ্ধতি ব্যাখ্যা করতে যাচ্ছি।



পদ্ধতি 1: সিএসভি ফরম্যাটে অভিধান সংরক্ষণ করুন

অভিধানটি CSV (কমা পৃথকীকৃত মান) এ সংরক্ষণ করতে, আমরা CSV মডিউল ব্যবহার করি। পাইথন ডিক্ট সংরক্ষণ করার জন্য কমা-বিভক্ত মানগুলি সবচেয়ে সাধারণ এবং বিখ্যাত পদ্ধতি। বেশিরভাগ প্রোগ্রামার এই পদ্ধতিটি শুধুমাত্র একটি ফাইলে ডিক্ট সংরক্ষণ করতে ব্যবহার করে। সিএসভি হিসাবে একটি ফাইলে অভিধান সংরক্ষণ করা খুব সহজ কারণ আমাদের স্ট্রিং হিসাবে ডেটা স্থানান্তর করতে হবে।



উদাহরণ_1: dict_to_csv.py





# dict_to_csv.py
আমদানি সিএসভি

dict_sample= {'নাম':'লিনাক্সহিন্ট', 'শহর':'যে', 'শিক্ষা':'প্রকৌশল'}

সঙ্গে খোলা('data.csv', 'ভিতরে') হিসাবেচ:
জন্যচাবিভিতরেdict_sample।চাবি():
চ।লিখুন('% s,% sn'%(চাবি,dict_sample[চাবি]))

লাইন 2 : আমরা CSV পাইথন মডিউল আমদানি করি।

লাইন 4 : আমরা একটি নমুনা ডিক ডেটা তৈরি করেছি। আমরা এটি একটি CSV ফাইলের আকারে সংরক্ষণ করার চেষ্টা করতে যাচ্ছি।



লাইন 6: CSV ফাইল লেখার জন্য আমরা এখানে 'with' স্টেটমেন্ট ব্যবহার করছি। একটি ফাইল পড়া বা লেখার সময় 'সঙ্গে' বিবৃতি স্বয়ংক্রিয়ভাবে ব্যতিক্রম হ্যান্ডলিং পরিচালনা করে। আমরা data.csv ফাইলটি রাইট মোডে খুলি এবং সেই বস্তুকে ভেরিয়েবল f- এ বরাদ্দ করি।

লাইন 7 , আমরা একটি লুপ চালাচ্ছি যা কী বের করে, এবং পরের লাইনে, এটি একটি CSV ফাইলে কী এবং key_value লিখে। ডেটা না হওয়া পর্যন্ত এই লুপ চলবে।

আউটপুট: data.csv

নাম,লিনাক্সহিন্ট
শহর,যে
শিক্ষা,প্রকৌশল

সুতরাং, উপরের data.csv- এ লেখার পর আউটপুট ফাইল দেখায়।

এখন, আমরা বুঝতে পারি কিভাবে ডিক্টকে CSV আকারে একটি ফাইলে সংরক্ষণ করতে হয়। আসুন আরেকটি উদাহরণ দিয়ে চেষ্টা করি যেখানে আমরা CSV ফাইলে ডিক অবজেক্টের একটি তালিকা লিখতে চাই।

উদাহরণ_2: dict_to_csv_2.py

# dict_to_csv_2.py

আমদানি সিএসভি

csvColumns= ['শহর', 'দেশ', 'র‍্যাঙ্ক']
dictDemo= [
{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
]
csvFileName= 'data.csv'
চেষ্টা করুন:
সঙ্গে খোলা(csvFileName, 'ভিতরে') হিসাবেচ:
লেখক= সিএসভিডিক্ট রাইটার(,ক্ষেত্রের নাম=csvColumns)
লেখক.রাইট হেডার()
জন্যতথ্যভিতরেdictDemo:
লেখক.লেখক(তথ্য)
ছাড়া IOError:
ছাপা('ভুল হয়েছে')

লাইন 3 থেকে 12: আমরা পাইথন CSV মডিউল আমদানি করি এবং ডিক্ট অবজেক্টের একটি তালিকা তৈরি করি। আমরা কলামের নামের একটি তালিকাও তৈরি করেছি।

লাইন 13: আমরা একটি ভেরিয়েবলে CSV ফাইলের নাম বরাদ্দ করেছি।

লাইন 15: আমরা 'with' স্টেটমেন্ট ব্যবহার করি, এবং স্টেটমেন্টটি __enter__ মেথড রিটার্ন অবজেক্টকে f ভেরিয়েবলে অর্পণ করে।

লাইন 16 থেকে 19: ভেরিয়েবল f- এ রিটার্ন অবজেক্ট বরাদ্দ করার পর, আমরা CSV মডিউলের একটি ডিক্টরাইটার পদ্ধতি বলেছিলাম এবং দুটি প্যারামিটার (ফাইলের নাম (f) এবং কলামের নাম) পাস করেছি। তারপরে আমরা অন্য একটি পদ্ধতি রাইটহেডার () কল করি যা CSV ফাইলের প্রথম সারি লিখবে, যা সাধারণত ক্ষেত্রগুলির নাম। তারপরে আমরা ডিক্ট অবজেক্টের তালিকায় একটি for লুপ চালাই এবং রাইটার () পদ্ধতি ব্যবহার করে CSV ফাইলে একে একে লিখি।

পদ্ধতি 2: JSON ফর্ম্যাটে একটি টেক্সট ফাইলে ডিক্ট সংরক্ষণ করুন (মোড যোগ করুন)

আমরা JSON আকারে ডিক্ট অবজেক্টগুলিকে একটি ফাইলে সংরক্ষণ করতে পারি। নীচের কোড একই ব্যাখ্যা করবে। এই কোডটি আরও ব্যাখ্যা করে যে আমরা কীভাবে JSON এর বিদ্যমান তালিকায় নতুন JSON যুক্ত করতে পারি।

উদাহরণ : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

আমদানিjson

dictDemo= [
{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
]

ফাইলের নাম= 'dict.json'

# একটি ফাইলে ডিক অবজেক্টের তালিকা লেখা
সঙ্গে খোলা(ফাইলের নাম,মোড='ভিতরে') হিসাবেচ:
jsonডাম্প(dictDemo,)

# একটি ফাইলে একটি নতুন ডিক অবজেক্ট লিখুন এবং পুরো ফাইলটি ওভাররাইট করুন
সঙ্গে খোলা(ফাইলের নাম,মোড='ভিতরে') হিসাবেচ:
dictDemo।সংযোজন({'শহর':'বেইজিং', 'দেশ':'চীন'})
jsonডাম্প(dictDemo,)

আউটপুট : dict.json

[{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
{'শহর':'বেইজিং', 'দেশ':'চীন'}
]

লাইন 1 থেকে 13 : আমরা JSON মডিউল আমদানি করি। তারপর আমরা ডেমো জন্য dict বস্তুর একটি তালিকা তৈরি। তারপর আমরা একটি পরিবর্তনশীল ফাইলের নাম JSON ফাইলের নাম নির্ধারণ করেছি।

লাইন 15 থেকে 17 : আমরা লেখার জন্য JSON ফাইলটি খোলার জন্য 'with' স্টেটমেন্ট ব্যবহার করছি, এবং তারপর আমরা ডিক্স অবজেক্টগুলিকে JSON এ রূপান্তর করার জন্য json.dump পদ্ধতি ব্যবহার করি এবং তারপর ফাইলে লিখি।

লাইন 20 থেকে 22: এই লাইনগুলো খুবই গুরুত্বপূর্ণ কারণ কি হবে? যদি আমরা ইতিমধ্যে লিখিত ফাইলগুলিতে নতুন JSON বস্তু যুক্ত করার চেষ্টা করি। ওভাররাইটিংয়ের কারণে আগের ডেটা হারিয়ে যাবে। তারপরে আমরা আগের ডিক তালিকার নামটি ব্যবহার করতে পারি যেমনটি আমরা করেছি (ডিকডেমো), এবং তারপরে আমরা এতে নতুন বস্তুটি যুক্ত করি। এবং শেষ পর্যন্ত, আমরা পুরো ফাইলটিকে JSON এ রূপান্তর করি এবং পুরো ফাইলটি ওভাররাইট করি।

আউটপুটে, আমরা দেখতে পাচ্ছি যে একটি বিদ্যমান JSON তালিকায় একটি নতুন JSON বস্তু যোগ করা হয়েছে।

পদ্ধতি 3: অভিধান বস্তুগুলিকে txt আকারে একটি ফাইলে সংরক্ষণ করুন

আমরা অভিধানকে একটি সাধারণ স্ট্রিং ফরম্যাটে ফাইলে সংরক্ষণ করতে পারি। সুতরাং, নীচের পদ্ধতিটি পাঠ্য আকারে ফাইলে অভিধানের বস্তুগুলি সংরক্ষণ করার একটি খুব সহজ উপায়। কিন্তু এই কোডটি কাজ করবে না যদি আমরা ফাইলে একটি নতুন অভিধান বস্তু যুক্ত করতে চাই কারণ এটি পূর্বে লিখিত ডেটার উপর ওভাররাইট করবে। সুতরাং, এর জন্য, আমরা এটি পরবর্তী কোডে দেখব।

উদাহরণ: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
]

ফাইলের নাম= 'dict.txt'

# একটি ফাইলে ডিক অবজেক্টের তালিকা লেখা
সঙ্গে খোলা(ফাইলের নাম,মোড='ভিতরে') হিসাবেচ:
চ।লিখুন(পৃ(dictDemo))

আউটপুট: dict.txt

[{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7}]

লাইন 1 থেকে 11 : আমরা অভিধান বস্তুর একটি তালিকা তৈরি করেছি এবং একটি পরিবর্তনশীল ফাইলের নাম dict.txt ফাইলের নাম নির্ধারণ করেছি।

লাইন 14 থেকে 15 : আমরা এখানে 'সঙ্গে' বিবৃতি ব্যবহার করছি, যা স্বয়ংক্রিয়ভাবে ব্যতিক্রমটি পরিচালনা করে। এবং আমরা একটি ফাইলের স্ট্রিং হিসাবে dict বস্তুর তালিকা লিখছি।

উদাহরণ: dict_to_txt_2.py

আমরা দেখেছি কিভাবে ডিক্ট অবজেক্টগুলিকে .txt ফর্মের একটি ফাইলে সংরক্ষণ করতে হয়। কিন্তু উপরের কোডে, একটি নতুন বস্তু যুক্ত করার সাথে একটি সমস্যা রয়েছে। সুতরাং, আমরা সংযোজন পদ্ধতিটি 'w' থেকে 'a' তে পরিবর্তন করি, যা কোডে নীচের মত আমাদের সমস্যার সমাধান করতে পারে।

#dict_to_txt_2.py

'' ': সিভার
এই কোডটি দিয়ে ডিক্ট অবজেক্টগুলিকে সেভ করবে
সংযোজন মোড।
'' '

dictDemo= [
{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
]

ফাইলের নাম= 'dict_to_file_appendMode.txt'

# একটি ফাইলে ডিক অবজেক্টের তালিকা লেখা
সঙ্গে খোলা(ফাইলের নাম,মোড='প্রতি') হিসাবেচ:
চ।লিখুন(পৃ(dictDemo))

লাইন 7 থেকে 15 : আমরা অভিধান বস্তুর একটি তালিকা তৈরি করেছি এবং একটি পরিবর্তনশীল ফাইলের নাম dict_to_file_appendMode.txt ফাইলের নাম নির্ধারণ করেছি।

লাইন 18 থেকে 19 : আমরা মোড = 'a' পরিবর্তন করি, এবং এটি আমাদের সমস্যার সমাধান করবে। নীচের আউটপুটটি দেখায় যে আমরা আগের ডেটা ওভাররাইট না করে একই ফাইলে দুটি ডিক্ট অবজেক্ট যুক্ত করেছি।

আউটপুট: dict_to_file_appendMode.txt

[{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7}]

[{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7}]

পদ্ধতি 4: ডিক অবজেক্টটি আচার পদ্ধতি ব্যবহার করে একটি ফাইলে সংরক্ষণ করুন।

আমরা পাইথন আচার মডিউল ব্যবহার করে একটি ফাইলে ডিক্ট অবজেক্টও সংরক্ষণ করতে পারি। আচার মডিউল পাইথনে সিরিয়ালাইজেশনের জন্য অনেক বস্তুকে সমর্থন করে এবং ডিক্ট অবজেক্টগুলিকেও সমর্থন করে।

# dict_to_file_use_pickle.py

আমদানি আচার

dictDemo= [
{'শহর':'নিউইয়র্ক', 'দেশ':'ব্যবহারসমূহ', 'র‍্যাঙ্ক':3},
{'শহর':'সিডনি', 'দেশ':'অস্ট্রেলিয়া', 'র‍্যাঙ্ক':5},
{'শহর':'দুবাই', 'দেশ':'সংযুক্ত আরব আমিরাত', 'র‍্যাঙ্ক':10},
{'শহর':'মুম্বাই', 'দেশ':'ভারত', 'র‍্যাঙ্ক':17},
{'শহর':'বেইজিং', 'দেশ':'চীন', 'র‍্যাঙ্ক':7},
]

ফাইলের নাম= 'picklefile.pkl'

সঙ্গে খোলা(ফাইলের নাম, 'দূরে') হিসাবেচ:
আচারডাম্প(dictDemo,)

লাইন 3 থেকে 13 : আমরা মডিউল আচার আমদানি করি এবং ডিক্ট বস্তুর একটি তালিকা তৈরি করি। আমরা একটি ফাইলের নামও তৈরি করি যেখানে আমরা আমাদের ডিক্ট বস্তুগুলি সংরক্ষণ করব।

লাইন 15 থেকে 16 : আমরা এখানে 'with' স্টেটমেন্ট ব্যবহার করছি এবং এপেন্ডিং মোড এবং বাইনারি ফরম্যাটে ফাইল খুলছি। তারপরে আমরা ডিক্ট অবজেক্টগুলিকে ফাইলে ডাম্প করি।

উপসংহার

সুতরাং, আমরা একটি ফাইলে একটি অভিধান বস্তু সংরক্ষণ করার বিভিন্ন পদ্ধতি দেখেছি। এটি ব্যবহারকারীর উপর নির্ভর করে যে তারা কীভাবে ফাইলে বস্তুটি সংরক্ষণ করতে চায়। ডিক অবজেক্টকে ফাইলে সংরক্ষণ করার সবচেয়ে সাধারণ পদ্ধতি হল JSON এবং CSV। JSON এবং CSV ফরম্যাটগুলি প্রোগ্রামিং দৃষ্টিকোণ থেকে খুব বিখ্যাত বা পাইথনে হ্যান্ডেল করা সহজ। আমরা ফাইল সংরক্ষণের পরিশিষ্ট মোডও দেখেছি।

এই নিবন্ধটির কোড এই লিঙ্ক থেকে ডাউনলোড করা যাবে:

https://github.com/shekharpandey89/save-dict-object-to-a-file