2012-11-01 3 views
0

У меня есть следующая строкаФорматирование данных в .csv с помощью питона

string = "First Name | Last Name | Age" 

, когда я печатаю это выглядит следующим образом:

First Name | Last Name | Age 

При печати в файл CSV

writer.writerow(datac[0]) 

выглядит следующим образом:

F, i, r, s, t and so on... 

Как я могу печатать в одной строке? например

Row1 

First Name | Last Name | Age 
+0

Вы пробовали 'writer.writerow ([datac [0]])'? – Blender

+0

Являются ли 'Имя',' Фамилия' и 'Возраст' должны быть отдельными столбцами? –

ответ

2

writer.writerow() Ожидает последовательности. Поскольку строки являются последовательностями символов, это интерпретируется таким образом.

Если строка содержит только один элемент, можно указать, что, как это: writer.writerow([datac[0]]) или writer.writerow(datac[0:1])

+0

Это правильно, но, возможно, что-то не хватает. Самая последняя строка его вопроса показывает, что он может ожидать, что он будет писать три столбца (разделительные трубы?), А не один. (Кстати, файл csv с одним столбцом не нуждается в разделителе.) Если 'datac' содержит три элемента, то, что ему действительно нужно, будет' writer.writerow (datac) '. –

+0

Если требуется разграничение по трубе, передайте разделитель в конструктор записи csv: 'writer = csv.writer (a_file, delimiter = '|')' –

1

writer.writerow() ожидает, что последовательность и когда вы даете ему строку, он обрабатывает его как последовательность charecters , Попробуйте сделать это.

writer = csv.writer(csvfile, delimiter=' ') 
string = "First Name | Last Name | Age" 
writer.writerow(string.split('|')) 
+1

Если вы не установите разделитель csv как '' | '', это будет выводиться используя запятые в качестве разделителей, которые, похоже, отличаются от желаемых. – recursive

Смежные вопросы