Python中有一个csv模块,可以处理此问题。
编辑 :此任务属于“构建词法分析器”类别。完成此类任务的标准方法是构建状态机(或使用将为您完成任务的lexer库/框架)。
用于此任务的状态机可能仅需要两个状态:
- 最初的一个,它读取除逗号和换行符以外的所有字符作为字段的一部分(例外:前导和尾随空格),逗号作为字段分隔符,换行符作为记录分隔符。当遇到开盘报价时,它进入
- 读引号字段状态,其中不包括引号在内的每个字符(包括逗号和换行符)都被视为字段的一部分,引号后没有引号意味着读引号字段的结尾(返回初始状态),后跟引号用引号将其视为单引号(转义引号)。
顺便说一下,您的串联解决方案将在
"Field1","Field2"或上中断
"Field1"",""Field2"。



