У меня есть небольшой скрипт, который читает канал '|'CSV-файл с разделителями, а затем записывает его в другой файл с разделителями-запятыми.Работает нормально.Код, входной файл и выходной файл ниже:
import csv
ifile = "d:\\python\\project\\cars-original.csv"
ofile = "d:\\python\\project\\cars.csv"
with open(ifile, 'r') as f:
reader = csv.reader(f, delimiter='|')
with open(ofile, 'w', newline='') as of:
writer = csv.writer(of, delimiter=',')
for row in reader:
writer.writerow(row)
Reading|Make|Model|Type|Value
Reading 0|Toyota|Previa|distance|19.83942
Reading 1|Dodge|Intrepid|distance|31.28257
Reading,Make,Model,Type,Value
Reading 0,Toyota,Previa,distance,19.83942
Reading 1,Dodge,Intrepid,distance,31.28257
Теперь я хочу изменить скрипт, чтобы он мог автоматически читать тип разделителя.
Я нашел несколько примеров в Интернете, но когда я запускаю свой, я получаю пустой файл для вывода.Нет ошибок, просто пусто.Не уверен, что я делаю неправильно.
Мой измененный (неработающий) скрипт:
import csv
ifile = "d:\\python\\projects\\cars-original.csv"
ofile = "d:\\python\\projects\\cars.csv"
with open(ifile, 'r') as f:
reader = csv.reader(f)
dialect = csv.Sniffer().sniff(f.read(1024), delimiters=',|')
with open(ofile, 'w', newline='') as of:
writer = csv.writer(of, dialect)
for row in reader:
writer.writerow(row)