Почему я не могу присоединиться к этому кортежу в Python? - PullRequest
54 голосов
/ 29 ноября 2009
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))

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

Ответы [ 4 ]

110 голосов
/ 29 ноября 2009

join принимает только списки строк, поэтому сначала преобразуйте их

>>> e = ('ham', 5, 1, 'bird')
>>> ','.join(map(str,e))
'ham,5,1,bird'

Или, может быть, более питонический

>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
11 голосов
/ 29 ноября 2009

join() работает только со строками, а не с целыми числами. Используйте ','.join(str(i) for i in e).

4 голосов
/ 02 июня 2015

Возможно, вам лучше сначала преобразовать кортеж в список:

e = ('ham', 5, 1, 'bird') liste = list(e) ','.join(liste)

4 голосов
/ 29 ноября 2009

Используйте модуль csv. Это сохранит последующий вопрос о том, как обрабатывать элементы, содержащие запятую, а затем вопрос об обработке элементов, содержащих символ, который вы использовали для кавычек / экранирования запятых.

import csv
e = ('ham', 5, 1, 'bird')
with open('out.csv', 'wb') as f:
    csv.writer(f).writerow(e)

Проверьте это:

print open('out.csv').read()

Выход:

ham,5,1,bird
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...