ازگر میں فائل کھولنے یا بند ہونے کی جانچ کیسے کی جائے۔

How Check File Is Opened



فائل کو مستقل طور پر ڈیٹا کو محفوظ کرنے کے لیے استعمال کیا جاتا ہے۔ فائل کے ساتھ کام کرنا کسی بھی پروگرامنگ لینگویج کا بہت عام کام ہے۔ فائل بنانے ، کھولنے ، پڑھنے ، لکھنے اور بند کرنے کے لیے ازگر میں بہت سے بلٹ ان فنکشنز موجود ہیں۔ ڈیٹا ذخیرہ کرنے کے لیے دو قسم کی فائلیں بنائی جا سکتی ہیں۔ یہ ٹیکسٹ فائلیں اور بائنری فائلیں ہیں۔ کسی بھی فائل کو پڑھنے یا لکھنے سے پہلے کھولنے کی ضرورت ہوتی ہے۔ کی کھلا () فنکشن کو فائل کھولنے کے لیے ازگر میں استعمال کیا جاتا ہے۔ کا استعمال کرتے ہوئے کھلا () فنکشن کسی خاص فائل کو کھولنے یا بند ہونے کی جانچ کرنے کا ایک طریقہ ہے۔ اگر کھلا () فنکشن پہلے کھولی فائل کھولتا ہے ، پھر ایک IOError پیدا کیا جائے گا. فائل کھولنے یا بند ہونے کی جانچ کرنے کا دوسرا طریقہ یہ ہے کہ اس کی اقدار کو چیک کیا جائے۔ بند فائل ہینڈلر آبجیکٹ کی پراپرٹی۔ استعمال کرتے ہوئے۔ نام تبدیل کریں () فنکشن فائل کو کھولنے یا بند کرنے کا ایک اور طریقہ ہے۔ اس ٹیوٹوریل میں ازگر میں کسی بھی فائل کو کھولنے یا بند کرنے کے مختلف طریقے دکھائے گئے ہیں۔

چیک کرنے کے لیے ایک فائل بنائیں:

آپ اس ٹیوٹوریل میں دکھائے گئے مثال کے کوڈ کو جانچنے کے لیے کوئی بھی موجودہ فائل استعمال کر سکتے ہیں یا نئی فائل بنا سکتے ہیں۔ ایک نئی ٹیکسٹ فائل جس کا نام ہے۔ client.txt سبق کے اگلے حصے میں بعد میں استعمال کرنے کے لیے درج ذیل مواد کے ساتھ بنایا گیا ہے۔







شناختی نام ای میل۔
01 جونی لیور [ای میل محفوظ]
02 مانک حسین [ای میل محفوظ]
03 نیہا اکٹر [ای میل محفوظ]
04 جنت الفردوس [ای میل محفوظ]
05 ہلال الدین [ای میل محفوظ]



مثال 1: چیک کریں کہ فائل کھلی ہے یا نہیں IOError استعمال کرکے۔

IOError اس وقت پیدا ہوتا ہے جب ایک فائل کھولنے کے لیے اوپن () فنکشن کہا جاتا ہے جو پہلے کھولی جا چکی ہے۔ مندرجہ ذیل سکرپٹ کے ساتھ ایک ازگر فائل بنائیں تاکہ چیک کریں کہ فائل کھولی گئی ہے یا نہیں۔ آزمائیں سوائے بلاک. یہاں ، کسی بھی موجودہ فائل کا نام ان پٹ کے طور پر لیا جائے گا اور پڑھنے کے لیے کھول دیا جائے گا۔ اگلا ، اسی فائل کو کھولنے کے لیے اوپن () فنکشن کو دوبارہ بلایا جاتا ہے جو کہ IOError اٹھائے گا اور ایرر میسج پرنٹ کرے گا۔



# چیک کرنے کے لیے فائل کا نام لیں۔
فائل کا نام = ان پٹ۔('موجودہ فائل کا نام درج کریں:n')
# اوپن () فنکشن کا استعمال کرتے ہوئے پہلی بار فائل کھولیں۔
فائل ہینڈلر = کھلا۔(فائل کا نام،'ر')
# فائل کو دوبارہ وہی فائل کھولنے کی کوشش کریں۔
کوشش کریں:
کھلے کے ساتھ('فائل کا نام'،'ر') جیسا کہفائل:
# کامیابی کا پیغام چھاپیں۔
پرنٹ کریں('فائل پڑھنے کے لیے کھل گئی ہے۔')
# اگر فائل پہلے کھولی گئی ہے تو غلطی اٹھائیں۔
IOError کے سوا:
پرنٹ کریں('فائل پہلے ہی کھل چکی ہے۔')

آؤٹ پٹ:

مندرجہ بالا اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ یہاں ، client.txt موجودہ مقام میں موجود ہے ، اور غلطی کا پیغام ، فائل پہلے ہی کھل چکی ہے ، کے لیے پرنٹ کیا ہے۔ IOError رعایت.





مثال 2: بند پراپرٹی کا استعمال کرکے چیک کریں کہ فائل بند ہے یا نہیں۔

کی قدر بند اگر کوئی فائل بند ہے تو جائیداد درست ہوگی۔ مندرجہ ذیل سکرپٹ کے ساتھ ایک ازگر فائل بنائیں تاکہ یہ چیک کیا جا سکے کہ فائل بند ہے یا نہیں جو موجودہ مقام پر موجود ہے۔ پچھلی مثال کا اسکرپٹ غلطی پیدا کرے گا اگر صارف سے لیا گیا فائل نام موجودہ مقام پر موجود نہیں ہے۔ یہ مسئلہ اس مثال میں حل ہوا ہے۔ کی تم ماڈیول یہاں فائل کے نام کو چیک کرنے کے لیے استعمال کیا جاتا ہے جو صارف سے لیا جائے گا۔ check_closed () فنکشن نے چیک کیا ہے کہ فائل بند ہے یا نہیں ، اگر فائل موجود ہے تو اسے بلایا جائے گا۔



# فائل کا وجود چیک کرنے کے لیے او ایس ماڈیول درآمد کریں۔
درآمد
# ڈرافائن فنکشن چیک کریں کہ فائل بند ہے یا نہیں۔
def check_closed():
اگرfileHandler.closed == غلط:
# کامیابی کا پیغام چھاپیں۔
پرنٹ کریں('فائل پڑھنے کے لیے کھل گئی ہے۔')
اور:
# غلطی کا پیغام پرنٹ کریں۔
پرنٹ کریں('فائل بند ہو گئی ہے۔')

# چیک کرنے کے لیے فائل کا نام لیں۔
فائل کا نام = ان پٹ۔('موجودہ فائل کا نام درج کریں:n')
# چیک کریں کہ فائل موجود ہے یا نہیں۔
اگرos.path.exists۔(فائل کا نام):
# پڑھنے کے لیے فائل کھولیں۔
فائل ہینڈلر = کھلا۔(فائل کا نام،'ر')
# فنکشن کو کال کریں۔
چیک_ بند()
اور:
# فائل پرنٹ نہ ہونے کی صورت میں پرنٹ کریں۔
پرنٹ کریں('فائل موجود نہیں ہے.')

آؤٹ پٹ:

مندرجہ بالا اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ یہاں ، client.txt موجودہ مقام پر موجود ہے ، اور کامیابی کا پیغام ، فائل پڑھنے کے لیے کھل گئی ہے ، پرنٹ کیا ہے کیونکہ بند جائیداد کی قیمت لوٹ آئی ہے۔ جھوٹا۔ .

مثال 3: چیک کریں کہ فائل کھلی ہے یا نہیں OSError استعمال کرکے۔

کی OSError پیدا ہوتا ہے جب rename () فنکشن کو ایک فائل کے لیے ایک سے زیادہ بار کہا جاتا ہے جو پہلے ہی کھل چکی ہے۔ مندرجہ ذیل سکرپٹ کے ساتھ ایک ازگر فائل بنائیں تاکہ چیک کریں کہ فائل کھولی گئی ہے یا بند ہے۔ OSError . فائل کا وجود چیک کرنے اور فائل کا نام تبدیل کرنے کے لیے اسکرپٹ میں او ایس ماڈیول استعمال کیا گیا ہے۔ جب نام تبدیل کریں () فنکشن کو دوسری بار بلایا گیا ہے ، OSError تیار کیا جائے گا ، اور کسٹم ایرر میسج پرنٹ کیا جائے گا۔

# فائل کا وجود چیک کرنے کے لیے او ایس ماڈیول درآمد کریں۔
درآمد
# موجودہ فائل کا نام سیٹ کریں۔
فائل کا نام ='client.txt'
# نیا فائل نام سیٹ کریں۔
نیا نام ='customers.txt'
# چیک کریں کہ فائل موجود ہے یا نہیں۔
اگرos.path.exists۔(فائل کا نام):
کوشش کریں:
# نام تبدیل کرنے کی تقریب کو پہلی بار کال کریں۔
os.rename(فائل کا نام ، نیا نام۔)
# نام تبدیل کرنے کی تقریب کو دوسری بار کال کریں۔
os.rename(فائل کا نام ، نیا نام۔)
# اگر فائل کھل گئی ہے تو غلطی اٹھائیں۔
OSError کے سوا:
پرنٹ کریں('فائل ابھی کھلی ہے۔')

اور:
# فائل پرنٹ نہ ہونے کی صورت میں پرنٹ کریں۔
پرنٹ کریں('فائل موجود نہیں ہے.')

آؤٹ پٹ:

مندرجہ بالا اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ یہاں ، client.txt موجودہ مقام میں موجود ہے ، اور غلطی کا پیغام ، فائل اب بھی کھلی ہے ، پرنٹ کیا ہے کیونکہ OSError استثنا پیدا ہوا جب دوسرا۔ نام تبدیل کریں () فنکشن پر عمل کیا گیا ہے

نتیجہ:

جب ہمیں ایک سکرپٹ میں ایک ہی فائل کے ساتھ کئی بار کام کرنے کی ضرورت ہوتی ہے ، تو یہ جاننا ضروری ہوتا ہے کہ فائل کھلی ہے یا بند ہے۔ فائل آپریشن مکمل کرنے کے بعد فائل کو بند کرنے کے لیے بند () فنکشن کو کال کرنا بہتر ہے۔ خرابی اس وقت ہوتی ہے جب کسی فائل کو بند کیے بغیر دوسری بار اسی اسکرپٹ میں کھولا جاتا ہے۔ اس مسئلے کے مختلف حل اس ٹیوٹوریل میں ازگر استعمال کرنے والوں کی مدد کے لیے سادہ مثالیں استعمال کرکے دکھائے گئے ہیں۔