Распечатать элементы списка в файл .csv - PullRequest
3 голосов
/ 12 июля 2010

Я читаю в CSV-файл и имею дело с каждой строкой в ​​виде списка.В конце я хотел бы перепечатать в файл .csv, но строки не обязательно будут четными.Я, очевидно, не могу просто пойти "print row", так как это напечатает его в виде списка.Как я могу распечатать его в формате .csv?

Ответы [ 4 ]

7 голосов
/ 12 июля 2010

Прочтите руководство, есть метод записи CSV (с примером тоже).Не печатайте данные, сохраняйте их и затем записывайте в файл CSV

http://docs.python.org/library/csv.html#csv.writer

3 голосов
/ 12 июля 2010

Предполагая, что "строка" содержит список строк, вы можете попробовать использовать

print ",".join(row)
0 голосов
/ 18 мая 2016

Хотя, похоже, ваш вопрос был скорее о записи в файл CSV, а не о его печати в стандартный вывод, вот пример, чтобы сделать последнее с использованием StringIO:

import StringIO
import csv

a_list_from_csv_file = [['for', 'bar'], [1, 2]]
out_fd = StringIO.StringIO()
writer = csv.writer(out_fd, delimiter='|')
for row in a_list_from_csv_file:
    writer.writerow(row)
print out_fd.getvalue()

Таким образом, вы можете использовать различные разделители или экранирующие символы, используемые в CSV, который вы читаете.

0 голосов
/ 12 июля 2010

Что вы подразумеваете под "линиями не обязательно даже"? Вы используете анализатор CSV для доморощенных или модуль CSV ?

Если от первого и нет ничего особенного, что вам нужно убежать, вы можете попробовать что-то вроде

print ",".join([ '"' + x.replace('"', '""') + '"' for x in row])

Если вы не хотите, чтобы "" вокруг каждого поля, возможно, создайте функцию типа escape_field(), которая проверяет, нужно ли ее заключать в двойные кавычки и / или экранировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...