Ich habe diesen Code, um eine komplizierte CSV-Datei in Stücke zu teilen. Das harte Bit ist, dass Kommas auch innerhalb von "" erscheinen dürfen und somit diese nicht geteilt werden dürfen. Die Regex ich verwende, um Kommas nicht innerhalb von "" funktioniert gut zu finden: comma_re = re.compile(r',(?=([^"]*""[^"]*"")*[^"]*$)')
Regex vermeiden "Rest der Zeichenfolge" Split-Ergebnisse
Demo: here
import re
test = 'Test1,Test2,"",Test3,Test4"",Test5'
comma_re = re.compile(r',(?=([^"]*""[^"]*"")*[^"]*$)')
print comma_re.split(test)
Ausgang:
['Test1', 'Test2,"",Test3,Test4""', 'Test2', '"",Test3,Test4""', '"",Test3,Test4""', None, 'Test5']
Wunsch: ['Test1', 'Test2', '"",Test3,Test4""', 'Test5']
Wie kann Ich vermeide die nutzlosen Split-Ergebnisse?
Vielen Dank im Voraus!
UPDATE: Dumm ich wusste nicht einmal über eine Standard-CSV-Modul, weiterhin damit. Danke für Ihre Bemühungen!
eine CSV-Modul noch versucht das? –
Nein, noch nicht, der einzige schwierige Teil ist Splitting, der Rest, den ich tun muss, ist sehr einfach ... – pietv8x
Parsing eine CSV-Datei mit einem Regex ist so eine schlechte Idee. Verwenden Sie einfach das dafür entwickelte csv-Modul – Keatinge