我正在使用Python 3.4,尝试导入包含逗号、分号和制表符作为分隔符的csv文件。
是否可能让Python检测要使用哪个正确的分隔符? 我已经阅读了python: import csv file (delimiter “;” or “,”)上的帖子,但无法获得适当的结果。
到目前为止,我的代码如下:
import csv
class Data(object):
def __init__(self, csv_file):
self.raw_data = []
self.read(csv_file)
def read(self, csv_file):
with open(csv_file, newline='') as csvfile:
dialect = csv.Sniffer().sniff(csvfile.read(), delimiters=',;')
csvfile.seek(0)
f = csv.reader(csvfile, dialect)
for row in f:
self.raw_data.append(row)
print(self.raw_data)
mycsv = Data('comma_separate.csv')
comma_separate.csv 包含:
afsfaf@faf.com, $161,321, True, 1
asafasf@fafa.net, $95.00, False, 3
adaafa3@aca.com, $952025, False, 3
现在我的输出是:
['afsfaf@faf.com, $161,321, True, 1'], ['asafasf@fafa.net, $95.00, False, 3'], ['adaafa3@aca.com, $952025, False, 3']
我的期望输出为:
['afsfaf@faf.com', '$161,321', 'True', '1'], ['asafasf@fafa.net', '$95.00', 'False', '3'], ['adaafa3@aca.com', '$952025', 'False', '3']