Форум сайта python.su
Привет!
Я не программист, просто пытаюсь автоматизировать кое что..
Помогите сделать файлик csv, пытаюсь вот так сделать:
# -*- coding: cp1251 -*- import csv text = 123 def exp(text): with open("test.csv", "wb") as csv_file: writer = csv.writer(csv_file) writer.writerow(text) csv_file.close() exp(text)
C:\Python34\python.exe C:/PythonScripts/wwwToExcel/Base.py Traceback (most recent call last): File "C:/PythonScripts/wwwToExcel/Base.py", line 12, in <module> exp(text) File "C:/PythonScripts/wwwToExcel/Base.py", line 9, in exp writer.writerow(text) _csv.Error: sequence expected
00001 ОАО "14 ТМП" FORD FOCUS Т961ВН197 Действующее
Отредактировано dr (Сен. 14, 2015 14:18:23)
Офлайн
dr
sequence expected
dr
csv_file.close()
dr
После экспорта, по идее будет проблемма с кодировкой
Офлайн
drОткрой файл не в двоичном режиме, а текстовом с указанием кодировки.
по идее будет проблемма с кодировкой, помогите плиз ее тоже решить, файл буду заполнить русскими буквми
>>> import csv >>> >>> with open('file.csv', 'w', encoding='utf-8') as fout: ... writer = csv.writer(fout) ... writer.writerow(['абвг', 'деёж']) ... 11 >>> with open('file.csv', 'rb') as fin: ... print(repr(fin.read().decode('utf-8'))) ... 'абвг,деёж\r\n' >>>
Отредактировано py.user.next (Сен. 14, 2015 14:42:17)
Офлайн
Большое СПАСИБО! Все получилось. Стал передавать список, указал кодировку.
А как сделать возврат каретки и переход на следующую строку ? что бы в цикле заполнять csv по строкам?
list = [text,'\r\n'] def exp(list): with open('test.csv', 'w', encoding='cp1251') as csv_file: writer = csv.writer(csv_file) writer.writerow(list) exp(list) exp([123,'\r\n'])
Офлайн
drПризнак конца записи (CRLF) сам ставится. (Такой признак конца определён в rfc.) Поэтому вручную ставить его не надо.
А как сделать возврат каретки и переход на следующую строку ?
>>> import csv >>> >>> def f(fname, lst, enc): ... with open(fname, 'w', encoding=enc) as fp: ... writer = csv.writer(fp) ... writer.writerows(lst) ... >>> f('file1.csv', [[1, 2, 3], [4, 5, 6]], 'utf-8') >>> f('file2.csv', [[1], [2], [3]], 'utf-8') >>> f('file3.csv', [['a,b'], ['c,d'], ['e,f']], 'utf-8') >>>
[guest@localhost py]$ cat -e file1.csv
1,2,3^M$
4,5,6^M$
[guest@localhost py]$ cat -e file2.csv
1^M$
2^M$
3^M$
[guest@localhost py]$ cat -e file3.csv
"a,b"^M$
"c,d"^M$
"e,f"^M$
[guest@localhost py]$
Отредактировано py.user.next (Сен. 15, 2015 01:18:37)
Офлайн