පයිතන් හි කොමාවකින් පසුව හිස්තැනක් සහිත csv කියවීමේදී ප්‍රවේශම් වන්න

ව්යාපාරික

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']

මෙහිදී ඔබ ප්‍රවේශම් විය යුත්තේ කොමාවෙන් පසු ඉඩක් ඇති විටය. සාමාන්‍යයෙන්, කොමාවෙන් පසු අනවශ්‍ය හිස්තැන් නොතිබිය යුතුය, නමුත් සමහර විට මම ඒවායේ හිස්තැන් සහිත ගොනු දකිමි.

එවැනි අවස්ථාවන්හිදී, පෙරනිමියෙන්, whitespace නොසලකා හරිනු නොලැබෙන අතර ගොනුව කියවනු ලැබේ.

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']

pandas වල read_csv() සහිත csv ගොනුවක් කියවීමේදීද එය එසේම වේ. csv ගොනුවේ කොමාවෙන් පසුව ඉඩක් තිබේ නම්, ඔබට පහත දේ කළ හැක.
read_csv(skipinitialspace=True)