e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))

Tengo que unirme para poder escribirlo en un archivo de texto.

58
TIMEX 29 nov. 2009 a las 14:41

4 respuestas

La mejor respuesta

join solo toma listas de cadenas, así que conviértalas primero

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

O tal vez más pitónico

>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
124
Nick Craig-Wood 29 nov. 2009 a las 11:43

Utilice el csv. Guardará una pregunta de seguimiento sobre cómo manejar los elementos que contienen una coma, seguida de otra sobre cómo manejar los elementos que contienen el carácter que utilizó para citar / escapar de las comas.

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

Revisalo:

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

Salida:

ham,5,1,bird
3
jfs 29 nov. 2009 a las 14:20

Puede que sea mejor simplemente convertir la tupla a una lista primero:

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

4
user4805123user4805123 2 jun. 2015 a las 18:32

join() solo funciona con cadenas, no con enteros. Use ','.join(str(i) for i in e).

11
HamZa 28 feb. 2017 a las 10:26