Python: записать список кортежей в файл
Как я могу написать следующий список:
[(8, 'rfa'), (8, 'acc-raid'), (7, 'rapidbase'), (7, 'rcts'), (7, 'tve-announce'), (5, 'mysql-im'), (5, 'telnetcpcd'), (5, 'etftp'), (5, 'http-alt')]
в текстовый файл с двумя столбцами (8 rfa)
и много строк, так что у меня есть что-то вроде этого:
8 rfa
8 acc-raid
7 rapidbase
7 rcts
7 tve-announce
5 mysql-im
5 telnetcpcd
Ответы
Ответ 1
with open('daemons.txt', 'w') as fp:
fp.write('\n'.join('%s %s' % x for x in mylist))
Если вы хотите использовать str.format(), замените вторую строку следующим образом:
fp.write('\n'.join('{} {}'.format(x[0],x[1]) for x in mylist)
Ответ 2
import csv
with open(<path-to-file>, "w") as the_file:
csv.register_dialect("custom", delimiter=" ", skipinitialspace=True)
writer = csv.writer(the_file, dialect="custom")
for tup in tuples:
writer.write(tup)
Модуль csv
очень эффективен!
Ответ 3
open('filename', 'w').write('\n'.join('%s %s' % x for x in mylist))
Ответ 4
Вот третий способ, который я придумал:
for number, letter in myList:
of.write("\n".join(["%s %s" % (number, letter)]) + "\n")
Ответ 5
просто преобразуйте кортеж в строку с помощью str()
f=open("filename.txt","w+")
# in between code
f.write(str(tuple)+'/n')
# continue