CSV、TSV、またはより特殊な区切り文字 (|、; など) を使用したその他のフラット ファイルなど、さまざまな形式のファイルを受け取ります。これらのファイルはまた、さまざまな形式でテキスト修飾子を使用することもできます (修飾されたすべてのフィールド vs 修飾された区切り文字を含むもののみ、使用される異なる文字 '、" など)。
ここで言及されている Python スニファー クラスと似ていない頻度分析手法を使用して、ファイル内の区切り文字を正常に識別できるツールを作成しました:テキスト ファイルで使用されている区切り文字を検出するにはどうすればよいですか?
現在、テキスト修飾ファイルをサポートするようにツールを拡張しようとしています。ここでの問題は、多くの形式の CSV が区切り文字を含むフィールドをテキスト修飾子でラップするだけであるため、テキスト修飾子を識別するには頻度分析が不十分であることです。たとえば、10,000 行のファイルでは、テキスト修飾子が全体で 2 回しか出現しない可能性があります。ファイル。
私の現在のアプローチは、ファイルをスキャンして区切り文字とテキストの修飾子のペア (例: ,' と ',) を探し、それらを他の潜在的なペア (例: ," と ",) と比較し、最も頻繁に発生するものを選択することです。
より堅牢な代替手段を提供できる人はいますか? この問題の主な制約は、作成可能なさまざまな種類の CSV のいずれかでファイルをサポートする必要があることです。私の目標は、ユーザーの介入なしでできるだけ多くのケースをサポートすることです。