Уведомления

Группа в Telegram: @pythonsu

#1 Май 17, 2010 12:55:20

Olyaleo
От:
Зарегистрирован: 2010-03-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в CSV

Помогите, пожалуйста. Мне надо полученные данные записать в один файл CSV, в отдельные столбцы, у меня не выходит. Мой код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv

result=[]
result1=[]
result2=[]
data = open('Input.csv', 'r')
for string in data.readlines():
step = 28
it = (string[i:i+step]
for i in xrange(len(string)-step))
open('Output1.csv', 'w').writelines([str(y)+'\n' for y in list(it)])
f=open('Output1.csv', 'r')

for string in f.readlines():
rows = string.split(',')[0].strip()
e=rows[0:7]
k=rows[7:19]
s=rows[19:]
result+=[e]
result1+=[k]
result2+=[s]
writer =open('outup.csv','w')
for rows in result,result1, result2:
rows = writer.writerows(row(y)+'\n'" "+row(x)+'\n'" "+row(z)+'\n' for y in result for x in result1 for z in result2)


# open('Output1.csv', 'w').writelines([str(y)+'\n'" "+str(x)+'\n'" "+str(z)+'\n' for y in result for x in result1 for z in result2])
#open('Output1.csv', 'w').writelines([+str(y)+'\n' for y in result])
#open('Output1.csv', 'a').writelines([+str(y)+'\n' for y in result1])
#open('Output1.csv', 'a').writelines([+str(y)+'\n' for y in result2])



Офлайн

#2 Май 17, 2010 13:21:53

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в CSV

А что не выходит? Ошибка какая?



Офлайн

#3 Май 17, 2010 13:34:15

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Запись в CSV

Вы не используете функционал модуля csv. Того, что вы его проимпортировали, недостаточно. Пишите, читайте, используя методы оттуда и все у вас получится.



Офлайн

#4 Май 17, 2010 13:43:42

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Запись в CSV

может тут найдете ответ:
http://docs.python.org/library/csv.html



Офлайн

#5 Май 17, 2010 17:40:15

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Запись в CSV

Olyaleo
writer.writerows
неужели ошибки никакой не выходит? :)
Ed +1 :)



Офлайн

#6 Май 18, 2010 11:10:08

Olyaleo
От:
Зарегистрирован: 2010-03-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в CSV

igor.kaist
неужели ошибки никакой не выходит?
Конечно, выходит. Только мне от этого легче не становится, все равно скрипт не работает. По совету
Ed
Вы не используете функционал модуля csv. Того, что вы его проимпортировали, недостаточно. Пишите, читайте, используя методы оттуда и все у вас получится.
буду пытаться что-то сделать, но пока для меня это темный лес.



Отредактировано (Май 18, 2010 11:11:38)

Офлайн

#7 Май 18, 2010 12:15:28

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Запись в CSV

Olyaleo
Ed
Пишите, читайте, используя методы оттуда и все у вас получится.
буду пытаться что-то сделать, но пока для меня это темный лес.
Тогда задавайте вопросы, что ли. По-моему там все просто. Хотите писать в csv - используйте то, что есть в модуле csv.



Офлайн

#8 Май 18, 2010 13:48:43

Olyaleo
От:
Зарегистрирован: 2010-03-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в CSV

хорошо, попробую задать вопрос:
1)

Ed
Того, что вы его проимпортировали, недостаточно.
А что надо еще сделать, чтобы это было достаточным? Как записать по столбцам полученные значения я знаю, но они записываются в одну колонку таблицы excel, а я хочу сделать так, чтобы каждый столбец записывался в отдельную колонку.
2) возможно ли, записать все полученные данные в считываемый файл Input.csv ?
3) используя модуль join, я добавиа столбцы со значениями

open('Out.csv', 'w').write("\r\n".join(["%s, 'result', 'result1', 'result2'" % s.rstrip() for s in open('Output1.csv')]))
в результате у меня создается новая таблица с 4 столбцами, 1 из таблицы Output1.csv и 3 то что я присоединила, но там прописаны слова ‘result’, ‘result1’, ‘result2’, а не полученные данные работы скрипта. А можно ли используя этот модуль, добавить именно результаты ‘result’, ‘result1’, ‘result2’?



Офлайн

#9 Май 18, 2010 13:57:41

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Запись в CSV

Нужно использовать функционал оттуда, я уже писал.
Для начала попробуйте прочитать input.csv. В вашем коде используется readlines, то есть построчное чтение файла. А вы попробуйте использовать csv.reader. Описание и пример здесь: http://docs.python.org/library/csv.html
Результат несите сюда.



Офлайн

#10 Май 18, 2010 14:55:44

Olyaleo
От:
Зарегистрирован: 2010-03-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в CSV

Вот попробовала прочитать что файл input.csv, и снова ничего не выходит, выдает ошибку:

Traceback (most recent call last):
File "1.py", line 7, in <module>
for lines in data:
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv

data = csv.reader(open('Input.csv', 'r'), delimiter=',', quotechar='|')
for lines in data:
step = 28
it = (line[i:i+step]
for i in xrange((line)-step))
op = csv.writer(open('Output1.csv', 'w'))
writer.writerows (list(it))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version