首页 > 解决方案 > Python CSV读取带嵌入式分隔符的引用字段

问题描述

我正在尝试解析 KiCad 原理图。示例文本是:

F 0 "J1" H 10100 700 50  0000 R CNN
F 1 "1/8\" SJ1-3544" H 10350 800 50  0000 R CNN
F 2 "dish-components:CUI_SJ1-3544" H 10050 1200 50  0001 C CNN
F 3 "https://www.cui.com/product/resource/sj1-354x.pdf" H 10050 1200 50  0001 C CNN
F 4 "CP1-3544-ND" H 10050 1200 50  0001 C CNN "DigiKey"

我正在尝试用

csv.reader(lines, delimiter=" ", doublequote=False, escapechar='\\', quotechar='"')

对于第 1 行,这将返回

['F', '1', '1/8', 'SJ1-3544"', 'H', '10350', '800', '50', '', '0000', 'R', 'CNN']

我希望收到这个:

['F', '1', '1/8" SJ1-3544', 'H', '10350', '800', '50', '', '0000', 'R', 'CNN']

具体来说,第二个字段分为两个:1/8SJ1-3544"而不是1/8" SJ1-3544. 注意末尾的双引号SJ1-3544"

我的配置中缺少什么?

标签: pythoncsv

解决方案


escapechar选项允许您为嵌入的引号和分隔符指定转义字符(在您的情况下为反斜杠)。

https://docs.python.org/2/library/csv.html#csv.Dialect.escapechar


推荐阅读