如何用逗号分隔,然后用双引号括起来?

时间:2012-12-02 20:22:58

标签: python

我有一个文件“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将双引号块视为单个实体?

我尝试先用引号分割然后用逗号分隔,反之亦然,但这些方法似乎没有达到我想做的目的。

2 个答案:

答案 0 :(得分:2)

这称为“逗号分隔值”或短“csv”。 Python有一个用于阅读它的库。

如果您使用的是Python 3,请查看:http://docs.python.org/2/library/csv.htmlhttp://docs.python.org/3/library/csv.html

答案 1 :(得分:2)

使用真正的CSV解析器。 Python 2Python 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