2015-02-10 3 views
1

Первоначально списки были вложены в другой список. каждый элемент в списке представлял собой ряд строк.Запись нескольких списков в текстовый файл в python - 2.7

['aaa664847', 'Completed', 'location', 'mode', '2014-xx-ddT20:00:00.000'] 

Я присоединился к строкам в списке, а затем присоединяюсь к результатам.

results.append[orginal] 

print results 

['aaa664847, Completed, location, mode, 2014-xx-ddT20:00:00.000'] 
['aaa665487, Completed, location, mode, 2014-xx-ddT19:00:00.000'] 
['aaa661965, Completed, location, mode, 2014-xx-ddT18:00:00.000'] 
['aaa669696, Completed, location, mode, 2014-xx-ddT17:00:00.000'] 
['aaa665376, Completed, location, mode, 2014-xx-ddT16:00:00.000'] 

Я ищу, чтобы написать каждый список в текстовый файл. Количество списков может отличаться.

Мой текущий код: только

fullpath = ('O:/Location/complete.txt') 
outfile = open(fullpath, 'w') 
outfile.writelines(results) 

возвращает первый список в текстовом файле:

aaa664847, Completed, location, mode, 2014-xx-ddT20:00:00.000 

Я хотел бы текстовый файл, чтобы включить все результаты

+1

Что такое «результаты»? т. е. если вы введете: тип (результаты), что вы вернетесь? похоже, что «результаты» - это список с одной строкой в ​​нем, и вы напечатали 4 разных результата ... –

+0

это списки. –

ответ

1

Предполагая results является список списков:

from itertools import chain 
outfile = open(fullpath, 'w') 
outfile.writelines(chain(*results)) 

itertools.chain будет Concat списков в один список. Но writelines не будет писать символы новой строки. Для этого вы можете сделать это:

outfile.write("\n".join(chain(*results)) 

Или, ясно (предполагается, что весь список в результаты только одна строка):

outfile.write("\n".join(i[0] for i in results) 
0

Если вы можете собрать все эти строки в один большой список, вы можете пропустить их.

Я не уверен, где results пришли из вашего кода, но если вы можете поместить все эти строки в один большой список (возможно, под названием masterList), то вы можете сделать:

fullpath = ('O:/Location/complete.txt') 
outfile = open(fullpath, 'w') 

for item in masterList: 
    outfile.writelines(item) 
+0

@zoosuck имеет право добавить «\ n» к отдельным строкам и закрыть файл по завершении. –

1

Если ваш список является вложенным списком, вы можете просто использовать цикл для writelines, как таким образом:

fullpath = ('./data.txt') 
outfile = open(fullpath, 'w') 
results = [['aaa664847, Completed, location, mode, 2014-xx-ddT20:00:00.000'], 
['aaa665487, Completed, location, mode, 2014-xx-ddT19:00:00.000'], 
['aaa661965, Completed, location, mode, 2014-xx-ddT18:00:00.000'], 
['aaa669696, Completed, location, mode, 2014-xx-ddT17:00:00.000'], 
['aaa665376, Completed, location, mode, 2014-xx-ddT16:00:00.000']] 

for result in results: 
    outfile.writelines(result) 
    outfile.write('\n') 

outfile.close() 

Кроме того, помните, закройте файл.

Смежные вопросы