For a study project I have many many csv files that I need to change from comma (,) separated to semicolon (;) separated. So I only need to change the separator.
I normally do it in Excel, but that takes a lot of work. And there I need to do it for every file separately plus Excel take a lot of time to do it.
I have made a input and output folder. That works fine in the code below. The problem is:
Can somebody give some tips?
import csv
from pathlib import Path
folder_in = Path(r'C:\convert\Trajectory\In')
folder_out = Path(r'C:\convert\Trajectory\Out')
for incsv in folder_in.iterdir():
outcsv = folder_out.joinpath(incsv.name)
with open(str(incsv), 'r') as fin, open(str(outcsv), 'w') as fout:
reader = csv.DictReader(fin)
writer = csv.DictWriter(fout, reader.fieldnames, delimiter=';')
writer.writeheader()
writer.writerows(reader)
There are no answer, here is my proposition for a csv comma to semicolon implementation on the same file:
path="file_to_convert.csv"
reader = list(csv.reader(open(path, "rU"), delimiter=','))
writer = csv.writer(open(path, 'w'), delimiter=';')
writer.writerows(row for row in reader)
I used the list() so the content of reader is kept and I reopen the file to write in it.
If you don't need the change to be in the same file you can check this answer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With