Если вы хотите, чтобы ;
был разделителем полей, вы должны указать, что:
new = csv.reader(ifile, delimiter=';')
output = csv.writer(ofile,dialect='excel',delimiter="\t")
for item in new:
output.writerow(item)
Это работает так же хорошо, как DictReader
для разделения полей.
Записывает поля табуляции с разделителями;Я не вижу пустых строк вообще.
Старый ответ до выяснения вопроса
Мне не понятно, почему вы используетеDictReader
для чтения ввода, если вам нужны только значения ячеек, а не имена полей.Однако, если по какой-то причине вам нужно использовать DictReader
:
from itertools import chain
output.writer.writerow(list(chain.from_iterable(item.values() for item in new)))
Запишет все значения, разделенные табуляцией, в выходной файл, без переносов между ними.
Если вам на самом деле не нужен DictReader
,
new = csv.reader(ifile)
output = csv.writer(ofile,dialect='excel',delimiter="\t")
next(new) # to skip the field names
output.writerow(list(chain.from_iterable(new)))
Будет снова записывать ячейки как одну строку, разделенные табуляцией, в выходной файл.