2014-01-03 7 views
1

У меня есть следующий список и попытка записать его в txt-файл в виде разделителя табуляции.Устранение неполадок вывода списка Python

final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)] 

Мой выход утверждение, но это не исключает квадратные скобки:

fh = open("text.txt", "w") 
fh.write('\n'.join('%s %s' % x for x in final_out)) 
fh.close() 

Мой желаемый результат:

2893541 OVERALL friendly and genuine. 77 
2893382 SPEED timely manner. 63 

Большое спасибо заранее.

ответ

1
  1. Используйте with при открытии файлов для автоматической очистки файлов.
  2. У вас все еще есть квадратные скобки, потому что вы конвертируете список в строку.
  3. Вы на самом деле не с помощью вкладок в любом

Моя рекомендация состоит в том, чтобы использовать модуль csv, который также будет обрабатывать ускользающей для вас (по умолчанию, используя кавычки).

import csv 

final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)] 

with open('text.txt', 'wb') as fh: 
    writer = csv.writer(fh, delimiter='\t') 

    for row in final_out: 
     writer.writerow(row[0] + [row[1]]) 
+0

Спасибо вам столько – BlackHat

0

Вы можете изменить строку записи, как это:

fh.write('\n'.join('%s %s' % (' '.join(a), b) for a, b in final_out)) 
0

Вы можете попробовать использовать этот подход:

final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)] 
fh = open("text.txt", "w") 

for final_out_item in final_out: 
    first_part = '\t'.join(final_out_item[0]) 
    fh.write("%s\t%s\n" % (first_part, final_out_item[1])) 

fh.close() 
+0

Обратите внимание, что предыдущий код это не с помощью любого другие дополнительные библиотеки, учитывая простоту проделанной работы ... – avenet

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