The above answer with for-looping through the string is very slow, if you want to apply your algorithm to a 5 MB csv file.
This seems to be reasonably fast and provides the same result as the for loop:
#!/bin/python3
data = 'hoko foko; moko soko; "aaa mo; bia"; "ee mo"; "eka koka"; "koni; masa"; "co co"; ehe mo; "bi; ko"; ko ma\n "ka ku"; "ki; ko"\n "ko;ma"; "ki ma"\n"ehe;";koko'
first_split=data.split('"')
split01=[]
split02=[]
for slc in first_split[0::2]:
split01.append(slc)
for slc in first_split[1::2]:
slc_new=",".join(slc.split(";"))
split02.append(slc_new)
resultlist = [item for sublist in zip(split01, split02) for item in sublist]
if len(split01) > len (split02):
resultlist.append(split01[-1])
if len(split01) < len (split02):
resultlist.append(split02[-1])
result='"'.join(resultlist)
print(data)
print(split01)
print(split02)
print(result)
Results in:
hoko foko; moko soko; "aaa mo; bia"; "ee mo"; "eka koka"; "koni; masa"; "co co"; ehe mo; "bi; ko"; ko ma
"ka ku"; "ki; ko"
"ko;ma"; "ki ma"
"ehe;";koko
['hoko foko; moko soko; ', '; ', '; ', '; ', '; ', '; ehe mo; ', '; ko ma\n ', '; ', '\n ', '; ', '\n', ';koko']
['aaa mo, bia', 'ee mo', 'eka koka', 'koni, masa', 'co co', 'bi, ko', 'ka ku', 'ki, ko', 'ko,ma', 'ki ma', 'ehe,']
hoko foko; moko soko; "aaa mo, bia"; "ee mo"; "eka koka"; "koni, masa"; "co co"; ehe mo; "bi, ko"; ko ma
"ka ku"; "ki, ko"
"ko,ma"; "ki ma"
"ehe,";koko