drm
Авг. 16, 2009 23:07:20
Есть .csv файл, как добавить в него новое поле и установить для него одинаковое значение для всех существующих записей?
То есть имеем:
Поле1, Поле2
1,2
2,3
4,5
А нужно:
Поле1,Поле2,Поле3
1,2,'some'
2,3,'some'
4,5,'some'
test157
Авг. 17, 2009 09:08:09
ну самый простой вариант разбить файл на строки и к концу каждой строки добавить одно поле.
если файл небольшой то можно сделать както так
open('out.csv', 'w').write("\r\n".join(["%s,'some'" % s.rstrip() for s in open('in.csv')]))
(код не проверял но должно работать)
если значения some жолжны быть разными то добавь вместо ‘some’ функцию - которой ты можешь передать текущие значения и она должна возвращать дополнительное значение
Hektor
Авг. 17, 2009 19:07:37
pasaranax
А CSV module for Python такого не умеет что ли?
Насколько я смог разобраться, не умеет. Но даже если бы умел, то было бы реализовано по принципу,указанному гражданином
test157
drm
Авг. 17, 2009 21:43:40
test157, спасибо за помощь.
test157
Авг. 18, 2009 06:02:02
за помощь пожалуйста.
а насчет ЦСВ либы, то я пользовался той что включена в сам питон -
http://docs.python.org/library/csv.htmlлиба довольна удобная, отдаешь ей массив, а на выходе у тебя строчка для записи в файл - с уже экранированными как тебе нужно данными. ну и чтение в обратном порядке - дал строчку, а он тебе массив с данными.