Py学习  »  Python

具有多个delimeter的Python CSV解析器文件

Alex • 5 年前 • 2079 次点击  

="meet_name",="swim_time",="swim_date"

这是我目前掌握的代码:

import csv

 with open('Report.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter='=', quotechar='"')

    for line in csv_reader:
        print(line)

但当我把它打印到屏幕上时,逗号还在:

['', 'meet_name,', 'swim_time,', 'swim_date,']

我怎么能在没有昏迷的情况下分析呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53999
文章 [ 2 ]  |  最新文章 5 年前
VincentRG
Reply   •   1 楼
VincentRG    5 年前

我认为您提供的CSV示例与示例输出不匹配:“swim_date”后面没有逗号,但它在输出中。我还想知道为什么CSV行以等号开头。对我来说,等号可能是不应该出现的字符。

['="meet_name"', '="swim_time"', '="swim_date"']

这是比较一致的。但是,由于等号在quotechar之外,所以没有检测到这些等号。但如果所有的东西都是这样的话,那么类似的东西就会对工作产生影响:

import csv

with open('Report.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',', quotechar='"')

    for line in csv_reader:
        newLine = []

        for element in line:
            if element[:2]+element[-1] != '=""':
                raise RuntimeError("Unhandled formatting")

            newLine.append(element[2:-1])

        print(newLine)
yourFriendlyNeighbor
Reply   •   2 楼
yourFriendlyNeighbor    5 年前

我相信你的问题本质上与 this one ,但csv库似乎不适合处理具有多个字符作为分隔符或具有各种形式的分隔符的行。

我也不知道您使用的是什么python版本,但至少CSV库的python 2文档声明 delimiter

您可以按照上面链接中的解决方案执行相同的操作。那就是: 一。正常读取线路 三。然后用csv阅读器解析该行。