python - 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/8
和SJ1-3544"
而不是1/8" SJ1-3544
. 注意末尾的双引号SJ1-3544"
。
我的配置中缺少什么?
解决方案
该escapechar
选项允许您为嵌入的引号和分隔符指定转义字符(在您的情况下为反斜杠)。
https://docs.python.org/2/library/csv.html#csv.Dialect.escapechar
推荐阅读
- ffmpeg - 分段 MP4:TrackFragHeader TFHD 必须有 TrackID,这在规范中吗?
- algorithm - 多个用户将任务添加到队列的最佳任务处理算法是什么?
- r - Geom Smooth 不适用于 R 中时间序列的日期标签
- json - JOLT 只获取多个同名数组中的一个数组
- javascript - 在输入上使用 maskmoney 库
- node.js - 向嵌套路由添加渲染参数
- gmail - 使用 inboxSdk 将操作按钮添加到线程列表上方的 gmail 顶部栏
- python - 用一个新窗口替换一个窗口 - Python tkinter
- android - 您将如何使用 Gesture UI 在 Android 上激活 React Native Navigation 抽屉
- flutter - 我在 Flutter 中遇到空参数错误,我该如何解决?