Подтвердить что ты не робот

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 
4b9b3361

Ответ 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