Python میں، آپ معیاری csv ماڈیول کا استعمال کرتے ہوئے csv فائلوں کو آسانی سے پڑھ اور لکھ سکتے ہیں۔
مثال کے طور پر، فرض کریں کہ آپ کے پاس درج ذیل csv، sample.csv ہے۔
11,12,13,14
21,22,23,24
31,32,33,34
اسے درج ذیل پڑھا جا سکتا ہے۔
import csv
with open('data/src/sample.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
# ['11', '12', '13', '14']
# ['21', '22', '23', '24']
# ['31', '32', '33', '34']
آپ کو یہاں جس چیز سے محتاط رہنے کی ضرورت ہے وہ ہے جب کوما کے بعد جگہ ہو۔ عام طور پر، کوما کے بعد کوئی غیر ضروری خالی جگہ نہیں ہونی چاہیے، لیکن بعض اوقات میں ان میں خالی جگہوں والی فائلیں دیکھتا ہوں۔
ایسے معاملات میں، بطور ڈیفالٹ، وائٹ اسپیس کو نظر انداز نہیں کیا جاتا اور فائل کو ویسا ہی پڑھا جاتا ہے۔
11, 12, 13, 14
21, 22, 23, 24
31, 32, 33, 34
دوسرے الفاظ میں، اگر آپ مندرجہ بالا فائل کو کوما کے ساتھ اسپیس کے ساتھ پڑھتے ہیں، تو آؤٹ پٹ اس طرح ہوگا
with open('data/src/sample_space.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
# ['11', ' 12', ' 13', ' 14']
# ['21', ' 22', ' 23', ' 24']
# ['31', ' 32', ' 33', ' 34']
اگر آپ csv.reader میں درج ذیل کی وضاحت کرتے ہیں، تو کوما کے بعد خالی جگہیں چھوڑ دی جائیں گی۔skipinitialspace=True
with open('data/src/sample_space.csv', 'r') as f:
reader = csv.reader(f, skipinitialspace=True)
for row in reader:
print(row)
# ['11', '12', '13', '14']
# ['21', '22', '23', '24']
# ['31', '32', '33', '34']
اوپر کی طرح ایک سادہ مثال میں، آپ وائٹ اسپیس کو ہٹانے کے لیے strip() استعمال کر سکتے ہیں۔ مسئلہ اس وقت ہوتا ہے جب یہ درج ذیل کی طرح ڈبل کوٹیشن مارکس سے گھرا ہوا ہو۔
"one,one", "two,two", "three,three"
دوہرے کوٹیشن مارکس سے گھرا ہوا حصہ ایک واحد عنصر کے طور پر شمار کیا جانا چاہئے، لیکن اگر skipinitialspace=False (پہلے سے طے شدہ) ہے، تو یہ مندرجہ ذیل کی طرح نظر آئے گا۔
with open('data/src/sample_double_quotation.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
# ['one,one', ' "two', 'two"', ' "three', 'three"']
یہ skipinitialspace=True ترتیب دے کر کیا جا سکتا ہے۔
with open('data/src/sample_double_quotation.csv', 'r') as f:
reader = csv.reader(f, skipinitialspace=True)
for row in reader:
print(row)
# ['one,one', 'two,two', 'three,three']
پانڈوں میں read_csv() کے ساتھ csv فائل پڑھتے وقت بھی ایسا ہی ہوتا ہے۔ اگر csv فائل میں کوما کے بعد جگہ ہے تو آپ درج ذیل کام کر سکتے ہیں۔read_csv(skipinitialspace=True)


