Я успешно экспортировал данные, полученные из строк, которые я прочитал, в файл CSV, но мне нужно установить заголовок для каждой строки, чтобы я мог их идентифицировать. Я пробовал это:
file = open("llistaClients.csv", "w")
file.write("ID;NAME;PHONE;EMAIL;STREET;CITY")
for row in rows:
print(row['id'], row['name'], row['phone'], row['email'], row['street'], row['city'], sep="\t")
dades = str(row['id']) + ";" + str(row['name']) + ";" + str(row['phone']) + ";" + str(row['email']) \
+ ";" + str(row['street']) + ";" + str(row['city']);
file.write(dades + "\n")
Без этого file.write("ID;NAME;PHONE;EMAIL;STREET;CITY")
все работает отлично:
Но если я попытаюсь его использовать, он просто не откроется в Excel. Но если я открываю тот же файл с помощью блокнота, он действительно применяет этот заголовок.
У меня есть потенциальное исправление, которое позволяет без проблем поместить заголовок, используя: (другие поля)
import csv
with open("llistaProductes.csv","w") as csvfile:
fieldnames = ['id','name','list_price','create_date'];
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader();
for row in rows:
#print(dict(row))
print(row['id'], row['name'], row['list_price'], row['create_date'], sep="\t")
writer.writerow({'id': row['id'], 'name': row['name'],
'list_price': row['list_price'], 'create_date': row['create_date']})
Но используя это, я получаю это в Excel:
Он не разделяет столбцы .. Что неплохо, но не так, как должно ..
Итак, вопрос в том, почему я не могу правильно использовать первый метод? И если второй - тот, который я должен использовать, как отделить колонки. Спасибо.