Reading and Writing Files

پائتھون میں فائلوں کو پڑھنے کے لیے اوپن(open) کا فنکشن استعمال ہوتا ہے اور اس میں پہلی دلیل فائل کا نام اور دوسری فائل کا موڈ ہوتا ہے۔ یہ فنکشن ایک فائل مفعول (object) بناتا ہے جسے استعمال کرکے دوسرے متعلقہ طریقہ کار کو بلایا جا سکتا ہے۔

فائل کو تین اسلوب (mode) میں کھولا جا سکتا ہے
پڑھنے کے لیے (r)
لکھنے کے لیے (w)
اضافہ کے لیے (a)

ان تینوں اسلوب میں بھی مزید آپشن ہیں مگر فی الحال ہم انہی پر اکتفا کریں گے۔

PHP:
# Open a file
fo = open("test.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")
 
# Close opend file
fo.close()

مندرجہ بالا کوڈ میں ایک فائل test.txt کو لکھنے کے لیے کھولا گیا ہے اور پھر فائل ہینڈل ( file handle or file object) جو اوپن فنکشن کے نتیجہ میں fo کو تفویض (assign) ہوا ہے اسے استعمال کیا گیا ہے۔
کوڈ:
fo = open("test.txt", "w")

دوسری لائن میں فائل مفعول (object) کا فنکشن write استعمال کرکے دو لائن لکھی گئی ہیں
کوڈ:
fo.write( "Python is a great language.\nYeah its great!!\n")

اور پھر فائل کو بند کر دیا ہے گیا ہے۔
کوڈ:
fo.close()
 
Read() Method
read() method​
طریقہ سے کھلی فائل میں سے اسٹرنگ پڑھی جا سکتی ہے ۔ پائتھون اسٹرنگ میں صرف ٹیکسٹ ہی نہیں بلکہ بائنری ڈیٹا بھی ہو سکتا ہے۔​

اگر read() method میں نمبر پاس کیا جائے تو اس نمبر کے برابر بائٹس پڑھی جاتی ہیں اور اگر خالی​
read() method کال کیا جائے تو پوری فائل پڑھنے کی کوشش کی جاتی ہے۔​

PHP:
# Open a file
fo = open("test.txt", "r+")
str = fo.read(10);
print ("Read String is : ", str)
# Close opend file
fo.close()

مندرجہ بالا کوڈ میں test.txt فائل کو پڑھنے اور لکھنے دونوں کاموں کے لیے کھولا گیا ہے۔ اس کے بعد read کے طریقہ سے صرف 10 بائٹس پڑھی گئی ہیں اور انہیں str کو تفویض کر دیا گیا ہے

()readline فنکشن کی مدد سے ہم فائل میں سے ایک لائن کو پڑھ سکتے ہیں ۔
PHP:
fo.readline()
 
Output:
Python is a great Language.

()readlines فنکشن کی مدد سے ہم فائل میں سے ایک لائن کو پڑھ سکتے ہیں ۔

PHP:
fo.readlines()
 
Output:
Python is a great Language.
Yeah its great!!
 
File Positions
فائل میں جگہ (position) بنیادی اہمیت کی حامل ہے۔​
tell() method فائل میں موجودہ جگہ کے بارے میں بتاتا ہے ، اگلی دفعہ پڑھائی اور لکھائی فائل میں اس جگہ سے ہو گی۔

seek(offset[, from]) method موجودہ فائل پوزیشن کو بدل دیتا ہے۔
offset دلیل سے مقررہ بائٹس تک منتقل کیا جاتا ہے۔

from کی مدد سے بتایا جا سکتا ہے کہ فائل میں کس جگہ سے بائٹس کو منتقل کرنا ہے ۔
اگر from = 0 ہے تو فائل کے شروع کی جگہ
اگر from = 1 ہے تو فائل کی موجودہ جگہ
اگر from = 2 ہے تو فائل کے اختتام کی جگہ

PHP:
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print ("Read String is : ", str)
 
# Check current position
position = fo.tell();
print ("Current file position : ", position)
 
# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10);
print ("Again read String is : ", str)
# Close opend f
 
فائل خصوصیات

file.close
file.mode
file.filename
file.softspace


جب فائل کھلی ہو تو فائل مفعول (object) موجود ہوتا ہے اور فائل کے متعلق مختلف معلومات حاصل کی جا سکتی ہیں۔ اوپر فائل سے منسوب وصف درج ہیں۔

PHP:
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not : ", fo.closed)
print ("Opening mode : ", fo.mode)
print ("Softspace flag : ", fo.softspace)
 
یونیکوڈ فائلوں کو کھولنے اور لکھنے کے لیے ایک اور ماڈیول کی ضرورت پڑتی ہے جس کا نام ہے codecs

PHP:
import codecs
 
f = codecs.open('urduweb.txt', 'rU', 'utf-8')
for line in f:        # here line is a *unicode* string
    print(line)

اس کوڈ میں سادہ اوپن کی جگہ ہم نے کوڈکس کے اوپن فنکشن کو استعمال کیا اور اینکوڈنگ (encoding) کے بارے میں بتایا ہے جو کہ عموما utf-8 ہی ہوتی ہے۔

مزید تفصیل کے لیے ایک علیحدہ دھاگہ ہو گا۔
 
Top