Real files mix ;, ,, and |. Split on a class of separators, then print rows.
Goal
Turn messy.csv-shaped lines into (city, units, price).
import re
lines = ["Nairobi ; 12 ; 10.5", "Mombasa,9,22.0", "Kisumu | 2 | 31.0"]
for line in lines:
parts = [p.strip() for p in re.split(r"[|;,]", line)]
print(parts)import re
line = "Nairobi ; 12 ; 10.5"
city, units, price = [p.strip() for p in re.split(r"\s*;\s*", line)]
print(city, int(units), float(price))from pathlib import Path
import re
Path("messy.csv").write_text("Nairobi ; 12 ; 10.5\nMombasa,9,22.0\n", encoding="utf-8")
rows = []
for line in Path("messy.csv").read_text(encoding="utf-8").splitlines():
parts = [p.strip() for p in re.split(r"[|;,]", line) if p.strip()]
rows.append(parts)
print(rows)import re
print(re.findall(r"[A-Za-z]+", "Nairobi ; 12 ; 10.5"))