பைத்தானில் ஒரு இடைவெளியைத் தொடர்ந்து கமாவுடன் csv ஐப் படிக்கும்போது கவனமாக இருங்கள்

வணிக

பைத்தானில், நிலையான 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']

மேலே உள்ளதைப் போன்ற எளிய எடுத்துக்காட்டில், இடைவெளியை அகற்ற ஸ்ட்ரிப்() ஐப் பயன்படுத்தலாம். பின்வருபவை போன்ற இரட்டை மேற்கோள் குறிகளால் சூழப்பட்டால் சிக்கல்.

"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)