आप अपनी फ़ाइल के चारों ओर एक रैपर ऑब्जेक्ट बना सकते हैं जो सीएसवी रीडर उन्हें देखकर रिक्त स्थान को दूर करता है। इस तरह, आप css.DictReader के साथ csv फ़ाइल का भी उपयोग कर सकते हैं।
import re
class CSVSpaceStripper:
def __init__(self, filename):
self.fh = open(filename, "r")
self.surroundingWhiteSpace = re.compile("\s*;\s*")
self.leadingOrTrailingWhiteSpace = re.compile("^\s*|\s*$")
def close(self):
self.fh.close()
self.fh = None
def __iter__(self):
return self
def next(self):
line = self.fh.next()
line = self.surroundingWhiteSpace.sub(";", line)
line = self.leadingOrTrailingWhiteSpace.sub("", line)
return line
तो इस तरह इसका इस्तेमाल:
o = csv.reader(CSVSpaceStripper(filename), delimiter=";")
o = csv.DictReader(CSVSpaceStripper(filename), delimiter=";")
मैं ";"
hardcoded सीमांकक किया जाना है। किसी भी डेलीमीटर को कोड सामान्य करना पाठक के लिए एक अभ्यास के रूप में छोड़ दिया जाता है।
स्रोत
2014-05-30 14:41:57
यह 'सीएसवी' मॉड्यूल का उपयोग कर सबसे अच्छा संभव समाधान है। 'Csv.reader()' फ़ंक्शन द्वारा लौटाई गई 'रीडर' कक्षा 'csv' या '_csv' मॉड्यूल में प्रकट नहीं होती है ताकि उसकी' अगली() 'विधि को ओवरराइड करने की अनुमति मिल सके। – CivFan