سبق File Read Methods

Opening File with Raw String
اس سے پہلے ہم دیکھ چکے ہیں کہ فائل کو پڑھنے کے لیے فائل کا پاتھ کیسے دیا جا سکتا ہے ۔ ایک طریقہ تو خام اسٹرنگ میں پورا فائل پاتھ لکھ کر اسے کھولنا اور پھر پڑھنا ہے ۔

PHP:
file = open(r'C:\TECHNICAL\PYTHON\poems.txt')
print(file.read())
file.close()

اس طریقہ سے آپ خام اسٹرنگ میں کسی بھی فائل کا پورا پتہ دے کر اسے کھول سکتے ہیں ۔
 
OS.PATH.JOIN
اوپر ہم نے خام اسٹرنگ کے ذریعے فائل کو کھولنے اور پڑھنے کا طریقہ دیکھا ہے۔ اس سے بہتر طریقہ جو کہ پلیٹ فارم سے آزاد ہے وہ پائتھون کے path.join کے استعمال سے فائل کا پاتھ بنانا ہے۔

PHP:
import os
BASE = os.path.join('C:',os.sep,"TECHNICAL","PYTHON")
FILE = os.path.join(BASE,"poems.txt")
file = open(FILE)
for line in file:
    if line.startswith("If"):
          print(line,end='')

اس طریقہ میں ہم نے فائل کا پورا پتہ ایک خام اسٹرنگ میں نہیں دیا ہے بلکہ فائل کا پاتھ حصوں میں بنایا ہے۔

ماڈیول osکے path.join طریقہ کو استعمال کرتے ہوئے پہلے ایک بنیادی ڈائریکٹری کا پاتھ تیار کیا ہے جو C ڈرائیو ، Technical اور Python کے فولڈر(ڈائریکٹری) پر مشتمل ہے۔
C ڈرائیو کے فورا بعد ہم نے پاتھ جداساز ( separator) بھی شامل کیا ہے جو کہ os module میں موجود ہوتا ہے اور آپریٹنگ سسٹم کے حساب سے خود ہی \(back slash) یا /(forward slash) لگا دیتا ہے۔
BASE متغیر کی قیمت کچھ یوں بن جائے گی۔
کوڈ:
BASE = C:\TECHNICAL\PYTHON

اس کے بعد ہم نے دوبارہ جوائن کا طریقہ استعمال کرکے اصل فائل کو اس پاتھ کے آخر میں جوڑ دیا ہے تاکہ فائل کا پورا پاتھ حاصل کرکے اسے FILE متغیر(variable) میں محفوظ کیا جا سکے۔
کوڈ:
FILE = os.path.join(BASE,"poems.txt")

اس کےبعد فائل کو اوپن کرنے کے لیے صرف FILE لکھنا پڑا ہے اور یوں ہم نے فائل کا پاتھ بنانے کا پورا طریقہ فائل اوپن کے فنکشن میں سے علیحدہ کر لیا ہے۔ اب اگر کوئی ڈائریکٹری بدلنی ہو یا فائل کا نام بدلنا ہو تو شروع کی دو لائنوں میں تبدیلی کرنی ہو گی۔

PHP:
for line in file:
    if line.startswith("If"):
          print(line,end='')
 
file.close()

فائل کی تمام لائنوں کو ایک for لوپ کے ذریعے ایک ایک کے پڑھ لیا ہے۔
اگر لائن کا آغاز If کے لفظ سے ہو رہا ہے تو اسے پرنٹ کر لیا ہے۔
آخر میں فائل کو بند کر دیا ہے۔

کوڈ:
If you think you are beaten, you are;
If you think you dare not, you don't.
If you'd like to win, but think you can't
If you think you'll lose, you've lost
If you think you're outclassed, you are:
 
Unicode Files
یونیکوڈ فائلوں کو پڑھنے کے لیے سادہ اوپن فنکشن کام نہیں کرتا بلکہ codecs کا اوپن فنکشن استعمال کرنا پڑتا ہے۔
محسن کی ایک غزل جو فائل میں محفوظ ہے ، اسے پائتھون میں پڑھ کر پرنٹ کرتے ہیں۔

ذکرِ شبِ فراق سے وحشت اسے بھی تھی
میری طرح کسی سے محبت اسے بھی تھی

مجھ کو بھی شوق تھا نئے چہروں کی دید کا
رستہ بدل کے چلنے کی عادت اسے بھی تھی

اس رات دیر تک وہ رہا محوِ گفتگو
مصروف میں بھی کم تھا فراغت اسے بھی تھی

سنتا تھا میں بھی سب سے پرانی کہانیاں
تازہ رفاقتوں کی ضرورت اسے بھی تھی

مجھ سے بچھڑ کے شہر میں گھل مل گیا وہ شخص
حالانکہ شہر بھر سے رقابت اسے بھی تھی

وہ مجھ سے بڑھ کے ضبط کا عادی تھا جی گیا
ورنہ ہر ایک سانس قیامت اسے بھی تھی


PHP:
import codecs
import os
 
#File path is C:\TECHNICAL\PYTHON\Mohsin.txt
FILE = os.path.join("C:",os.sep,"TECHNICAL","PYTHON","Mohsin.txt")
 
shairfile = codecs.open(FILE, encoding='utf-8')
 
for line in shairfile:
    print(line,end='')


فائل Mohsin.txt کے نام سے C:\TECHNICAL\PYTHON کی ڈائریکٹری میں محفوظ ہے۔
os ماڈیول کے فنکشن جوائن کی مدد سے پورا پاتھ تیار کیا ہے جس میں پہلے سی ڈرائیو پھر جدا ساز (separator ) , اس کے بعد TECHNICAL کی ڈائریکٹری اور پھر PYTHON کی ڈائریکٹر کو جوڑا گیا ہے۔ آخر میں فائل کا نام ہے۔ ماڈیول میں موجود پاتھ اور جوائن فنکشن کی مدد سے ایسے path تیار کرنا خام اسٹرنگ (raw string) کے مقابلے میں زیادہ دیرپا اور مفید ہے۔

فائل کو اوپن کرنے کے لیے codecs کے ماڈیول کا اوپن فنکشن استعمال کیا گیا ہے ، جس میں ایک اضافی دلیل encoding کی دی گئی ہے ۔ utf-8 یونیکوڈ اینکوڈنگ ہے اور زیادہ تر یہی یونیکوڈ لکھنے کے لیے استعمال ہوتی ہے۔

اس کے بعد for لوپ کے ذریعے فائل کو ایک ایک لائن کرکے پڑھا گیا ہے اور پرنٹ کروا لیا گیا ہے (پرنٹ فنکشن کو اضافی خالی لائن پرنٹ کرنے سے روکنے کے لیے end کو خالی اسٹرنگ کے برابر رکھا گیا ہے تاکہ غیرضروری اسپیس اور لائن پرنٹ ہونے سے روکے جا سکیں)۔
 

دوست

محفلین
اس میں سارا متن ایک ہی بار پڑھنا ہو تو؟ پائتھون تین میں ییونیکوڈ طےشدہ طور پر ہے غالباﹰ.
 
اس میں سارا متن ایک ہی بار پڑھنا ہو تو؟ پائتھون تین میں ییونیکوڈ طےشدہ طور پر ہے غالباﹰ.

سارا متن ایک ساتھ پڑھنا ہو تو readlines() سے ساری لائن ایک ساتھ پڑھ لیں اور کسی متغیر(variable) میں محفوظ کر لیں۔

PHP:
lines =  infile.readlines()

اوپر والی لائن میں lines ایک لسٹ ہے جو تمام لائنوں کی لسٹ ہے۔

پائتھون 3 میں یونیکوڈ کی اسپورٹ بنیاد سے موجود ہے اور اس وجہ سے codecs کے بغیر بھی کام چل جاتا ہے۔
 
Top