【发布时间】:2013-12-07 19:12:51
【问题描述】:
我有一段代码需要用逗号分隔,但不能在引号内用逗号分隔。我也不能在 python 中使用 csv 模块。使用我拥有的正则表达式模式,它适用于所有内容,除非引号前有多个逗号字段,例如我从数据中摘录的那些。我应该如何操作正则表达式的模式或者我应该添加什么?谢谢
CSV 文件:
,,,,,,,,
Grand Total for ATHLET:,,,"1,312 ",,62:58:18,130.62 ,,
,,,,,,,,
Grand Total for SELF:,,,"6,589 ",,397:57:58,708.53 ,,
,,,,,,,,
DataL 节选:
[Grand Total for ATHLET:,,,"1,312 ",,62:58:18,130.62 ,,]
[Grand Total for SELF:,,,"6,589 ",,397:57:58,708.53 ,,]
我目前拥有的正则表达式代码:
Pattern = re.compile(r'''((?:[^,"']|"[^"]*"|'[^,]*'|'[^']*')+)''')
dataL[i] = Pattern.split(dataL[i])[1::2]
当前输出:
['Grand Total for ATHLET:', '"1,312 "', '62:58:18', '130.62', '']
['Grand Total for SELF:', '"6,589 "', '397:57:58', '708.53', '']
想要的输出:
['Grand Total for ATHLET:', '', '', '"1,312 "', '62:58:18', '130.62', '']
['Grand Total for SELF:', '', '', '"6,589 "', '397:57:58', '708.53', '']
【问题讨论】:
-
请贴出实际csv文件的内容。
-
我发布了 CSV 文件,但这就是 dataL 的全部内容。我只是整理了重要的行并列了一个清单。
-
等等,所以你想保留
"1, 312 "周围的引号?这些几乎肯定不会提供信息,它们只是为了保护逗号。 -
使用带有
"作为引号字符和,作为分隔符的内置CSV模块不起作用? -
@ixe013 我不能在这个程序中使用 CSV 模块。