我们接收多种不同格式的文件 - CSV、TSV 或其他使用更多特殊分隔符(|、; 等)的平面文件。这些文件也可以使用文本限定符,同样在一系列格式中(每个字段都符合条件,而只有那些包含限定符的字段,使用不同的字符','等)。
我编写了一个工具,该工具能够使用频率分析技术成功识别文件中的分隔符,这与此处提到的 Python 嗅探器类不同:我应该如何检测文本文件中使用了哪个分隔符?
我现在正在尝试扩展该工具以支持文本限定文件。这里的困难在于频率分析不足以识别文本限定符,因为许多形式的 CSV 只会用文本限定符包装包含分隔符的字段,因此例如一个有 10k 行的文件可能整个文本限定符只有 2 次出现文件。
我目前的方法是扫描文件以查找分隔符-文本限定符对(例如,'和',),然后将它们与其他潜在的对(例如,,,和',)进行比较,并选择最常出现的。
谁能提供更强大的替代方案?这个问题的一个关键限制是我必须支持可以创建的许多不同风格的 CSV 文件中的任何一种。我的目标是在没有用户干预的情况下支持尽可能多的案例。