私は複雑なCSVファイルをチャンクに分割するこのコードを持っています。難しいのは、カンマもまた ""の中に現れる可能性があります。したがって、それらは分割してはいけません。私は "ない" 内のカンマを見つけるために使用しています正規表現が正常に動作します:comma_re = re.compile(r',(?=([^"]*""[^"]*"")*[^"]*$)')
Regexは "残りの文字列"分割結果を避ける
デモ:here
import re
test = 'Test1,Test2,"",Test3,Test4"",Test5'
comma_re = re.compile(r',(?=([^"]*""[^"]*"")*[^"]*$)')
print comma_re.split(test)
出力:理想の
['Test1', 'Test2,"",Test3,Test4""', 'Test2', '"",Test3,Test4""', '"",Test3,Test4""', None, 'Test5']
:['Test1', 'Test2', '"",Test3,Test4""', 'Test5']
どのようにすることができます私は無駄な分割結果を避けますか?
ありがとうございます!
更新: 愚かな私は既定のcsvモジュールについて知らず、それを続けました。あなたの努力をありがとう!
はまだCSVモジュールを試してみましたか? –
まだ、唯一の難しい部分は分割されていますが、残りの部分は非常に簡単です。 – pietv8x
正規表現でcsvファイルを解析するのは悪い考えです。このために構築されたcsvモジュールを使用するだけです – Keatinge