स्वल्पविरामासह 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']

जेव्हा स्वल्पविरामानंतर जागा असते तेव्हा तुम्हाला येथे काळजी घेण्याची आवश्यकता आहे. सामान्यतः, स्वल्पविरामानंतर अनावश्यक जागा नसावी, परंतु काहीवेळा मला त्यामध्ये रिक्त स्थान असलेल्या फायली दिसतात.

अशा प्रकरणांमध्ये, डीफॉल्टनुसार, व्हाईटस्पेसकडे दुर्लक्ष केले जात नाही आणि फाइल जशी आहे तशी वाचली जाते.

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)

Copied title and URL