Python मा स्पेस पछि अल्पविरामको साथ 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)

Copied title and URL