Как я могу напечатать список наборов в файле с помощью python в формате, который легко помещается в excel, исключая все нежелательные символы?

Я использую

for item in dictlist: print>>working_outfile, item 

чтобы распечатать список наборов в TXT-файл и открыть его с помощью excel, который затем позволяет мне преобразовать список в файл с разделителями-запятыми, создав электронную таблицу.

Проблема в том, что, когда у меня есть это открытое, я входил и вручную заменял первые открытые и закрытые круглые скобки, все апострофы, «set [" и символы закрывающей скобки, чтобы очистить внешний вид спреда лист.

Любые предложения или указатели на то, как я могу исправить этот шрифт, чтобы другим пользователям этой программы не приходилось учиться находить и заменять все эти символы?

EDIT: в конечном итоге он дает результат, выглядящий примерно так:

('aaa' | set (['stuff' | 'eggs' | 'spam']))

('bbb' | set (['stuff' | 'eggs' | 'spam']))

('ccc' | set (['stuff' | 'spam']))

где | следующая ячейка

и я хочу:

aaa | вещи | яйца | спам

bbb | вещи | яйца | спам

ccc | вещи | спам

Примером списка шрифтов для печати является:

[('gcagag', set (['FlyingFox mef2d upstream a1 ",' Gibbon mef2a upstream a1 ',' Elephant mef2d upstream a1 ',' Gorilla mef2c upstream a1 ',' gibbon mef2c upstream a1 ',' Monkey mef2d upstream a1 ' , 'Gorilla mef2a upstream a1', 'Rhesus mef2c upstream a1', 'MouseLemur mef2d вверх по течению a1', 'BrownBat mef2d вверх по течению a1', 'Dolphin mef2d вверх по течению a1', 'Kung-Fu-Panda! Mef2d upstream a1', 'Armadillo mef2d upstream a1 ',' chimp mef2d upstream a1 ',' Chimp mef2a upstream a1 ',' Marmoset mef2d upstream a1 ',' Rabbit mef2d вверх по течению a1 ',' EuroShrew mef2d вверх по течению a1 ',' Альпака mef2d вверх по течению a1 ',' chimp mef2c upstream a1 ',' EuroHedgeHog mef2d upstream a1 ',' Dog mef2d upstream a1 ',' mouse mef2d upstream a1 ',' Gibbon mef2d upstream a1 ',' Rat mef2d upstream a1 ',' Gorilla mef2d upstream a1 ',' Orangutan mef2d вверх по течению a1 ',' human mef2d upstream a1 '])), (' aaataa ', set ([' mouse mef2c upstream a1 ',' Alpaca mef2a upstream a1 ',' horse mef2a upstream a1 ',' opossum mef2a upstream a1 ',' Gibbon mef2a вверх по течению a1 ',' MouseLemur mef2a upstream a1 ',' слон mef2a вверх по течению a1 ',' GuineaPig mef2a вверх по течению a1 ',' Rat mef2d вверх по течению a1 ',' Dolphin mef2a upstream a1 ',' Gorilla mef2a upstream a1 ',' Rhesus mef2c upstream a1 ',' mouse mef2a upstream a1 ',' dog mef2c upstream a1 ',' Human mef2a upstream a1 ',' Chimp mef2a upstream a1 ',' Orangutan mef2a upstream a1 ']))]

обратите внимание, что здесь есть 2 элемента и их связанные с ними комплекты. фактический dictlist имеет где-то от 500-40000 пунктов в нем, так что это всего лишь небольшой разрез

Похоже, у вас есть список кортежей, где каждый кортеж состоит из строки и набора. Итак, чтобы правильно использовать CSV-writer, вам нужно, чтобы каждый из этих кортежей был «плоским»:

 import csv writer = csv.writer(open('output.csv', 'wb')) for item in mydata: # mydata is your list of tuples, so item is a tuple row = [item[0]] + list(item[1]) writer.writerow(row) 

Вы можете использовать модуль csv. http://docs.python.org/library/csv.html#csv.writer

 >>> import csv >>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=',') >>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 

Релевантно к вашему коду (обновляется после просмотра выходных данных в файле dictlist).

 >>> import csv >>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=',') >>> for item in dictlist: tmp = [item(0)] tmp.extend(item[1]) spamWriter.writerow(tmp) 

Если вам просто нужен список чисел в качестве CSV, вы можете сделать следующее

 >>> somelist=[set(random.sample(xrange(1,100),4)) for i in range(1,5)] >>> out = repr(somelist).translate(None,"([)]").replace("set","") '8, 98, 91, 10, 27, 3, 85, 37, 64, 33, 11, 69, 32, 83, 85, 38' 

Затем вы можете записать строку в файл.

В качестве альтернативы вы также можете развернуть набор как список чисел или строк, если ваша строка может содержать символы, которые добавляются как часть представления

 >>> somelist=[set(random.sample(xrange(1,100),4)) for i in range(1,5)] >>> [e for s in somelist for e in s] [17, 43, 63, 97, 16, 65, 58, 11, 49, 10, 91, 95, 41, 20, 85, 70] >>> 

Вы также можете использовать модуль csv для записи данных в файл

Из комментария OPs, поскольку он хотел, чтобы наборы в разных строках, Вот обновление

 >>> fin=open('somecsv.csv', 'wb') >>> csvwriter = csv.writer(open('somecsv.csv', 'wb'), delimiter=',') >>> for s in somelist: csvwriter.writerow(list(s)) >>> fin.close() 
  • Как сделать '?' равное число, поэтому, когда я просматриваю список. Он будет считать это нулем. (Python)
  • Microsoft Excel - как преобразовать вертикальный список с удвоенным идентификатором в горизонтальный без дублирования
  • Как я могу получать значения в разных диапазонах ячеек?
  • Создание структурированного списка из данных Excel
  • Excel - от матрицы к списку
  • Преобразование таблицы Excel в список, пропускающий пустые значения
  • Вывод выпадающего списка Excel
  • Показывать n-е значение в списке, который соответствует определенным критериям
  • Проверка данных (список) Excel: цвета
  • Выпадающий список Excel, созданный из col A: number и col B: item, а затем уменьшает параметры
  • Динамическое сохранение столбцов Excel в списке в Python
  • Interesting Posts

    Попытка отобразить дополнительный столбец, если какая-либо ячейка в диапазоне соответствует критериям

    Как произвести среднее значение за календарные месяцы, когда количество электронных таблиц охватывает месяцы?

    Как оптимизировать этот код, excel зависает на секунду или два, что делать?

    Как удалить формулы из листа, но сохранить их расчетные значения

    Вызов модуля из командной кнопки на листе – VBA

    Добавление вторичной оси с помощью Excel VBA

    Как игнорировать конкретное имя листа?

    excel усредняет каждые 10 строк

    Как скопировать и вставить существующий лист в существующую книгу с помощью python?

    Активация и деактивация ленты с помощью кнопки 1 VBA EXCEL

    Ошибка использования функции OR в Excel

    VBA Excel избегает циклов с переменной колонкой

    java.lang.OutOfMemoryError: куча Java-кучи при записи xlsx с помощью jxls

    Объединить (объединить) несколько .xlsx с одним рабочим листом в одну книгу (Python)

    Изменение таблиц электронных таблиц Excel с использованием Jenkins

    Давайте будем гением компьютера.