Почему я не могу присоединиться к этому кортежу в Python?
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
Мне нужно присоединиться к нему, чтобы я мог записать его в текстовый файл.
Ответ 1
join принимает только списки строк, поэтому сначала конвертируйте их
>>> e = ('ham', 5, 1, 'bird')
>>> ','.join(map(str,e))
'ham,5,1,bird'
Или, может быть, больше pythonic
>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
Ответ 2
join() работает только со строками, а не целыми числами. Используйте ','.join(str(i) for i in e).
Ответ 3
Используйте модуль 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
Ответ 4
Возможно, вам лучше просто преобразовать кортеж в список:
e = ('ham', 5, 1, 'bird')
liste = list(e)
','.join(liste)