我們以多種不同格式(CSV,TSV或其他使用更多異國定界符(|,等等)的平面文件)接收文件。這些文件也可以使用文本限定符,也是一系列格式(每個字段都限定,只限於那些包含限定符限定符,不同字符的','等)如何在平面文件(CSV,TSV等)中發現文本限定符?
我寫了一個工具,能夠成功識別文件中的分隔符使用的頻率分析技術與此處提到的Python嗅探器類沒有什麼不同:How should I detect which delimiter is used in a text file?
我現在試圖擴展該工具來支持文本限定文件,這裏的難點在於頻率分析不足以識別文本限定符,因爲許多形式的CSV只會將包含帶有文本限定符的分隔符的字段包裝起來,因此例如,具有10k行的文件在整個文件中可能只有2次出現的文本限定符
我目前的做法是掃描文件尋找分隔符文本限定符對(例如, ,'和',),然後將它們與其他潛在配對(例如「和」)進行比較,並選擇最常發生的配對。
任何人都可以提供更強大的替代?這個問題的一個關鍵約束是我必須支持可以創建的許多不同風格的CSV中的任何一種文件。我的目標是在沒有用戶干預的情況下支持儘可能多的情況。
謝謝,我會進一步研究。我認爲正則表達式可能是一條可行的路線,但由於有幾種情況需要考慮,所以正在努力思考正確的表達方式 - 如果第一個字段是文本限定的,那麼它就是「...」,例如,而不是, 「...」,這是翻轉的文本合格的最後一場。你的答案可能只是我需要的跳板。 –