কিভাবে পাইথনে একটি ফাইল খোলা বা বন্ধ হয়েছে তা পরীক্ষা করতে হবে

How Check File Is Opened



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

চেক করার জন্য একটি ফাইল তৈরি করুন:

এই টিউটোরিয়ালে দেখানো উদাহরণ কোড পরীক্ষা করার জন্য আপনি যেকোন বিদ্যমান ফাইল ব্যবহার করতে পারেন অথবা একটি নতুন ফাইল তৈরি করতে পারেন। নামে একটি নতুন টেক্সট ফাইল client.txt টিউটোরিয়ালের পরবর্তী অংশে পরে ব্যবহার করার জন্য নিম্নলিখিত বিষয়বস্তু দিয়ে তৈরি করা হয়েছে।







আইডি নাম ইমেইল
01 জনি লিভার [ইমেল সুরক্ষিত]
02 মানিক হোসেন [ইমেল সুরক্ষিত]
03 নেহা আক্তার [ইমেল সুরক্ষিত]
04 জানাতুল ফেরদৌস [ইমেল সুরক্ষিত]
05 Helal Uddin [email protected]



উদাহরণ -1: IOError ব্যবহার করে ফাইলটি খোলা আছে কি না তা পরীক্ষা করুন

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



# চেক করার জন্য ফাইলের নাম নিন
ফাইলের নাম = ইনপুট('কোন বিদ্যমান ফাইলের নাম লিখুন:n')
# ওপেন () ফাংশন ব্যবহার করে প্রথমবার ফাইলটি খুলুন
fileHandler = খোলা(ফাইলের নাম,'আর')
# ফাইলটি একই ফাইল আবার খোলার চেষ্টা করুন
চেষ্টা করুন:
খোলা সঙ্গে('ফাইলের নাম','আর') হিসাবেফাইল:
# সাফল্যের বার্তা প্রিন্ট করুন
ছাপা('ফাইলটি পড়ার জন্য খোলা হয়েছে।')
# ফাইলটি আগে খোলা থাকলে ত্রুটি বাড়ান
IOError ছাড়া:
ছাপা('ফাইল ইতিমধ্যেই খোলা হয়েছে।')

আউটপুট:

উপরের স্ক্রিপ্টটি চালানোর পর নিম্নলিখিত আউটপুটটি প্রদর্শিত হবে। এখানে, client.txt বর্তমান অবস্থানে বিদ্যমান, এবং ত্রুটি বার্তা, ফাইল ইতিমধ্যে খোলা হয়েছে, এর জন্য মুদ্রিত হয়েছে IOError ব্যতিক্রম





উদাহরণ -২: বন্ধ সম্পত্তি ব্যবহার করে ফাইলটি বন্ধ আছে কিনা তা পরীক্ষা করুন।

এর মান বন্ধ কোন ফাইল বন্ধ থাকলে সম্পত্তি সত্য হবে। একটি ফাইল বন্ধ আছে কিনা তা পরীক্ষা করতে নিম্নলিখিত স্ক্রিপ্ট দিয়ে একটি পাইথন ফাইল তৈরি করুন যা বর্তমান অবস্থানে বিদ্যমান। পূর্ববর্তী উদাহরণ স্ক্রিপ্ট একটি ত্রুটি তৈরি করবে যদি ব্যবহারকারীর কাছ থেকে নেওয়া ফাইলের নাম বর্তমান অবস্থানে না থাকে। এই সমস্যাটি এই উদাহরণে সমাধান করা হয়েছে। দ্য আপনি ব্যবহারকারীর কাছ থেকে নেওয়া ফাইলের নামের অস্তিত্ব পরীক্ষা করার জন্য এখানে মডিউল ব্যবহার করা হয়। Check_closed () ফাংশনটি ফাইলটি বন্ধ আছে কিনা তা পরীক্ষা করার জন্য সংজ্ঞায়িত করা হয়েছে এবং যদি ফাইলটি বিদ্যমান থাকে তবে তাকে বলা হবে।



# ফাইলের অস্তিত্ব পরীক্ষা করতে ওএস মডিউল আমদানি করুন
আমদানি
# ড্রফাইন ফাংশনটি পরীক্ষা করে দেখুন ফাইলটি বন্ধ আছে কি না
def check_closed():
যদিfileHandler.closed == মিথ্যা:
# সাফল্যের বার্তা প্রিন্ট করুন
ছাপা('পড়ার জন্য ফাইল খোলা হয়েছে।')
অন্য:
# ত্রুটি বার্তা প্রিন্ট করুন
ছাপা('ফাইল বন্ধ হয়ে গেছে।')

# চেক করার জন্য ফাইলের নাম নিন
ফাইলের নাম = ইনপুট('কোন বিদ্যমান ফাইলের নাম লিখুন:n')
# ফাইলটি বিদ্যমান কিনা তা পরীক্ষা করুন
যদিos.path.exists(ফাইলের নাম):
# পড়ার জন্য ফাইলটি খুলুন
fileHandler = খোলা(ফাইলের নাম,'আর')
# ফাংশনে কল করুন
check_closed()
অন্য:
# ফাইলটি না থাকলে প্রিন্ট মেসেজ
ছাপা('ফাইল বিদ্যমান নেই.')

আউটপুট:

উপরের স্ক্রিপ্টটি চালানোর পর নিম্নলিখিত আউটপুটটি প্রদর্শিত হবে। এখানে, client.txt বর্তমান অবস্থানে বিদ্যমান, এবং সাফল্যের বার্তা, ফাইল পড়ার জন্য খোলা হয়েছে, মুদ্রিত হয়েছে কারণ বন্ধ সম্পত্তির মূল্য ফিরে এসেছে মিথ্যা

উদাহরণ-3: OSError ব্যবহার করে ফাইলটি খোলা আছে কি না তা পরীক্ষা করুন

দ্য OSError জেনারেট করে যখন rename () ফাংশনটি একটি ফাইলের জন্য একাধিকবার বলা হয় যা ইতিমধ্যে খোলা হয়েছে। ব্যবহার করে একটি ফাইল খোলা বা বন্ধ আছে তা পরীক্ষা করার জন্য নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন OSError । ফাইলের অস্তিত্ব পরীক্ষা করতে এবং ফাইলের নাম পরিবর্তন করতে স্ক্রিপ্টে ওএস মডিউল ব্যবহার করা হয়েছে। যখন পুনnameনামকরণ () ফাংশনটি দ্বিতীয়বারের জন্য বলা হয়, OSError তৈরি হবে এবং কাস্টম ত্রুটি বার্তা মুদ্রিত হবে।

# ফাইলের অস্তিত্ব পরীক্ষা করতে ওএস মডিউল আমদানি করুন
আমদানি
# বিদ্যমান ফাইলের নাম সেট করুন
ফাইলের নাম ='client.txt'
# নতুন ফাইলের নাম সেট করুন
নতুন নাম ='customers.txt'
# ফাইলটি বিদ্যমান কিনা তা পরীক্ষা করুন
যদিos.path.exists(ফাইলের নাম):
চেষ্টা করুন:
# প্রথমবারের জন্য পুনnameনামকরণ ফাংশনটি কল করুন
os.rename(ফাইলের নাম, নতুন নাম)
# দ্বিতীয়বারের জন্য পুনnameনামকরণ ফাংশনটি কল করুন
os.rename(ফাইলের নাম, নতুন নাম)
# ফাইল খুললে ত্রুটি বাড়ান
OSError ছাড়া:
ছাপা('ফাইল এখনও খোলা আছে।')

অন্য:
# ফাইলটি না থাকলে প্রিন্ট মেসেজ
ছাপা('ফাইল বিদ্যমান নেই.')

আউটপুট:

উপরের স্ক্রিপ্টটি চালানোর পর নিম্নলিখিত আউটপুটটি প্রদর্শিত হবে। এখানে, client.txt বর্তমান অবস্থানে বিদ্যমান, এবং ত্রুটি বার্তা, ফাইল এখনও খোলা আছে, মুদ্রিত হয়েছে কারণ OSError ব্যতিক্রম তৈরি হয়েছে যখন দ্বিতীয় পুনnameনামকরণ () ফাংশন কার্যকর করা হয়েছে।

উপসংহার:

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