Экспорт списка в формате .txt (Python) - PullRequest
0 голосов
/ 22 февраля 2010

Мой модуль Python имеет список, который содержит все данные, которые я хочу сохранить в виде файла .txt. Список содержит несколько кортежей примерно так:

list = [ ('one', 'two', 'three'), ('four', 'five', 'six')]

Как распечатать список, чтобы каждый элемент кортежа отделялся вкладкой, а каждый кортеж - новой строкой?

Спасибо

Ответы [ 6 ]

9 голосов
/ 22 февраля 2010

Вы можете решить эту проблему, как предлагают другие ответы, просто соединив строки, но лучшим способом было бы просто использовать модуль Python CSV, чтобы позже вы могли легко изменить разделитель или добавить заголовок и т. Д., А также прочитать его обратно, похоже, что вы хочу файл с разделителями табуляции

import sys
import csv

csv_writer = csv.writer(sys.stdout, delimiter='\t')
rows = [ ('one', 'two', 'three'), ('four', 'five', 'six')]
csv_writer.writerows(rows)

выход:

one two three
four    five    six
8 голосов
/ 22 февраля 2010
print '\n'.join('\t'.join(x) for x in L)
2 голосов
/ 22 февраля 2010
open("data.txt", "w").write("\n".join(("\t".join(item)) for item in list))
2 голосов
/ 22 февраля 2010

Попробуйте это

"\n".join(map("\t".join,l))

Test

>>> l = [ ('one', 'two', 'three'), ('four', 'five', 'six')]
>>> print "\n".join(map("\t".join,l))
one     two     three
four    five    six
>>>
1 голос
/ 22 февраля 2010

Самый идиоматичный способ, ИМХО, это использовать понимание списка и объединение:

print '\n'.join('\t'.join(i) for i in l)
0 голосов
/ 20 марта 2010

Вам не нужно заранее присоединяться к списку:

with open("output.txt", "w") as fp:
    fp.writelines('%s\n' % '\t'.join(items) for items in a_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...