Pregunta

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

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

¿Fue útil?

Solución

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'

Otros consejos

join () solo funciona con cadenas, no con enteros. Use ','. Join (str (i) para i en e) .

Utilice el módulo 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)

Compruébalo:

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

Salida:

ham,5,1,bird

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

e = ('jamón', 5, 1, 'pájaro') liste = lista (e) ','. join (liste)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top