我们以多种不同格式(CSV,TSV或其他使用更多异国定界符(|,等等)的平面文件)接收文件。这些文件也可以使用文本限定符,也是一系列格式(每个字段都限定,只限于那些包含限定符限定符,不同字符的','等)如何在平面文件(CSV,TSV等)中发现文本限定符?
我写了一个工具,能够成功识别文件中的分隔符使用的频率分析技术与此处提到的Python嗅探器类没有什么不同:How should I detect which delimiter is used in a text file?
我现在试图扩展该工具来支持文本限定文件,这里的难点在于频率分析不足以识别文本限定符,因为许多形式的CSV只会将包含带有文本限定符的分隔符的字段包装起来,因此例如,具有10k行的文件在整个文件中可能只有2次出现的文本限定符
我目前的做法是扫描文件寻找分隔符文本限定符对(例如, ,'和',),然后将它们与其他潜在配对(例如“和”)进行比较,并选择最常发生的配对。
任何人都可以提供更强大的替代?这个问题的一个关键约束是我必须支持可以创建的许多不同风格的CSV中的任何一种文件。我的目标是在没有用户干预的情况下支持尽可能多的情况。
谢谢,我会进一步研究。我认为正则表达式可能是一条可行的路线,但由于有几种情况需要考虑,所以正在努力思考正确的表达方式 - 如果第一个字段是文本限定的,那么它就是“...”,例如,而不是, “...”,这是翻转的文本合格的最后一场。你的答案可能只是我需要的跳板。 –