def __parse_file(self):
filename = self.options['filename']
if not filename:
raise IOError
sep = self.options['column_separator']
quote = self.options['quote_character']
values = []
with open(filename, 'rU') as infile:
# if sep is not a one character string, csv.reader will raise a TypeError
if not quote:
csvreader = csv.reader(infile, delimiter=str(sep), quoting=csv.QUOTE_NONE)
else:
csvreader = csv.reader(infile, delimiter=str(sep), quotechar=str(quote))
# get each line from the file and separate it into columns based on sep
for row in csvreader:
# append all lines as-is case-wise
# unicode(str, errors='ignore') causes all invalid characters to be stripped out
values.append([unicode(value.strip(), errors='ignore') for value in row])
# ensure the number of columns in each row is the same as the previous row
if len(values) > 1:
assert len(values[-1]) == len(values[-2])
return values
评论列表
文章目录