Python - 如何像行一样读取/解析 csv?

标签 python parsing csv line

我进行了一些搜索,但大多数答案都是关于读取完整的 csv 文件,这些都不是我面临的问题。

我正在尝试使用 urllib2 从网络读取文件:

request = urllib2.Request('http://.../tv.txt')
response = urllib2.urlopen(request)
lines = response.readlines()
for line in lines:
    ...

“行”格式如下所示:

"ABC", "XYZ,MNO", "KLM"
"ABC", "MN"
"ABC", "123", "10", "OPPA GANGNAM STYLE", "LADY"

如上所示,这些行实际上不是 CSV 行。列数不断变化。

有没有办法将每一行拆分成一个列表?期望的结果应该是:

["ABC", "XYZ,MNO", "KLM"]
["ABC", "MN"]
["ABC", "123", "10", "OPPA GANGNAM STYLE", "LADY"]

我试过使用 line.split(",") 但它无法正确拆分,因为每对双引号内都有逗号。

如果你知道怎么做,请帮助我。非常感谢。

干杯,

PHP-Python-Java-MySQL-新手。

最佳答案

使用 csv 模块,它可以满足您的需求。

yourstring= '"ABC", "XYZ,MNO", "KLM"\n"ABC", "MN"\n"ABC", "123", "10", "OPPA GANGNAM STYLE", "LADY"'

import csv
import io

class MyDialect(csv.Dialect):
    strict = True
    skipinitialspace = True
    quoting = csv.QUOTE_ALL
    delimiter = ','
    quotechar = '"'
    lineterminator = '\n'


b = io.StringIO(yourstring)
r = csv.reader(b, MyDialect())

for i in r:
    print len(i), ':',' @ '.join(i)

关于Python - 如何像行一样读取/解析 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999528/

相关文章:

ios - iOS 中 SQLite 数据库的电子邮件 CSV

python - 安全地从 python 中的字符串中删除所有 html 代码

c++ - 从解析/读取整个文本文件到逐行解析/读取

Python bottle 两次运行初始化方法

python - 如何在 Django 中使用过滤后的数据填充表

c# - 解析测量单位

javascript - D3 CSV 列空间解析

php - 在 php 或 Cakephp 中使用 fgetcsv 导入大型 CSV 文件

python - 获取一个参数

javascript - 无法将 CSS 和 JavaScript 链接到 HTML