0

我有一个文件“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在用逗号分割时将双引号块处理为单个实体?

我试过先用引号分隔,然后用逗号分隔,反之亦然,但这些方法似乎并没有达到我想要做的事情。

4

2 回答 2

2

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

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

于 2012-12-02T20:24:22.590 回答
2

使用真正的CSV解析器。蟒蛇 2 ,蟒蛇 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
于 2012-12-02T20:24:39.563 回答