csv およびタブ区切りファイルの処理に関するベスト プラクティスを探しています。
CSV ファイルの場合、値にコンマまたは二重引用符が含まれている場合は既に書式設定を行っていますが、値に改行文字が含まれている場合はどうなりますか? 新しい行をそのままにして、値を二重引用符で囲み、値内の二重引用符をエスケープする必要がありますか?
タブ区切りファイルについても同じ質問です。同じではないにしても、答えは非常に似ていると思います。
csv およびタブ区切りファイルの処理に関するベスト プラクティスを探しています。
CSV ファイルの場合、値にコンマまたは二重引用符が含まれている場合は既に書式設定を行っていますが、値に改行文字が含まれている場合はどうなりますか? 新しい行をそのままにして、値を二重引用符で囲み、値内の二重引用符をエスケープする必要がありますか?
タブ区切りファイルについても同じ質問です。同じではないにしても、答えは非常に似ていると思います。
通常\n
、改行文字が文字列で囲まれるという事実を利用している間は、変更されません" "
。これにより曖昧さが生じることはありませんが、通常のテキスト エディターを使用してファイルを確認する必要がある場合は、非常に見苦しくなります。
ただし、二重引用符自体を除いて、CSV の文字列内は何もエスケープしないため、これが行うべき方法です。
@Jack は正しい\n
です。その場合、二重引用符で囲まれていることが予想されるため、変更されていない状態を維持することが最善の策です。
ほとんどの場合と同様に、ここでも一貫性が重要だと思います。私の知る限り、値が複数の行にまたがる場合、コンマが含まれている場合、または二重引用符が含まれている場合にのみ、値を二重引用符で囲む必要があります。私が見たいくつかの実装では、すべての値がエスケープされ、二重引用符で囲まれています。これは、解析アルゴリズムが単純になるためです (エスケープと二重引用符の問題はなく、CSV の読み取りでは逆です)。
これは最もスペースが最適化されたソリューションではありませんが、ファイルの読み取りと書き込みは、自分のライブラリと将来それを使用する可能性のある他のライブラリの両方にとって、些細な作業になります。