Форум сайта python.su
Помогите, пожалуйста. Мне надо полученные данные записать в один файл 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])
Офлайн
А что не выходит? Ошибка какая?
Офлайн
Вы не используете функционал модуля csv. Того, что вы его проимпортировали, недостаточно. Пишите, читайте, используя методы оттуда и все у вас получится.
Офлайн
может тут найдете ответ:
http://docs.python.org/library/csv.html
Офлайн
Olyaleoнеужели ошибки никакой не выходит? :)
writer.writerows
Офлайн
igor.kaistКонечно, выходит. Только мне от этого легче не становится, все равно скрипт не работает. По совету
неужели ошибки никакой не выходит?
Edбуду пытаться что-то сделать, но пока для меня это темный лес.
Вы не используете функционал модуля csv. Того, что вы его проимпортировали, недостаточно. Пишите, читайте, используя методы оттуда и все у вас получится.
Отредактировано (Май 18, 2010 11:11:38)
Офлайн
OlyaleoТогда задавайте вопросы, что ли. По-моему там все просто. Хотите писать в csv - используйте то, что есть в модуле csv.Edбуду пытаться что-то сделать, но пока для меня это темный лес.
Пишите, читайте, используя методы оттуда и все у вас получится.
Офлайн
хорошо, попробую задать вопрос:
1)
EdА что надо еще сделать, чтобы это было достаточным? Как записать по столбцам полученные значения я знаю, но они записываются в одну колонку таблицы excel, а я хочу сделать так, чтобы каждый столбец записывался в отдельную колонку.
Того, что вы его проимпортировали, недостаточно.
open('Out.csv', 'w').write("\r\n".join(["%s, 'result', 'result1', 'result2'" % s.rstrip() for s in open('Output1.csv')]))
Офлайн
Нужно использовать функционал оттуда, я уже писал.
Для начала попробуйте прочитать input.csv. В вашем коде используется readlines, то есть построчное чтение файла. А вы попробуйте использовать csv.reader. Описание и пример здесь: http://docs.python.org/library/csv.html
Результат несите сюда.
Офлайн
Вот попробовала прочитать что файл 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))
Офлайн