我有一个文件“data.txt”,其中包含
等行4, "124 Sesame, Street Lane", Chicago, IL
5, 2342 Main Street, Denver, CO
6, 124 Some Street, Los Angelos, CA
我有一个python脚本,逐行读取此文件,并将其拆分为(id, street address, city, state)
形式的数据元组。该脚本用逗号分隔每一行:
line = file.readline()
line_tuple = line.split(',')
这个方法明显失败了,因为我有一些行用双引号括起来的文本块,我想把它视为元组中的整个实体,而不是两个不同的数据。
如何在用逗号分割时告诉python将双引号块视为单个实体?
我尝试先用引号分割然后用逗号分隔,反之亦然,但这些方法似乎没有达到我想做的目的。
答案 0 :(得分:2)
这称为“逗号分隔值”或短“csv”。 Python有一个用于阅读它的库。
如果您使用的是Python 3,请查看:http://docs.python.org/2/library/csv.html或http://docs.python.org/3/library/csv.html。
答案 1 :(得分:2)
使用真正的CSV解析器。 Python 2,Python 3
# default delimiter is , and default quotechar is "
>>> import csv
>>> with open('eggs.csv', newline='') as csvfile:
... spamreader = csv.reader(csvfile)
... for row in spamreader:
... print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam