Domanda

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

Devo aderire per poterlo scrivere in un file di testo.

È stato utile?

Soluzione

join accetta solo elenchi di stringhe, quindi convertile prima

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

O forse più pitonico

>>> ','.join(str(i) for i in e)
'ham,5,1,bird'

Altri suggerimenti

join () funziona solo con stringhe, non con numeri interi. Usa ','. Join (str (i) per i in e) .

Utilizza il modulo csv . Salverà una domanda di follow-up su come gestire gli oggetti che contengono una virgola, seguita da un'altra sulla gestione degli oggetti che contengono il carattere che hai usato per citare / sfuggire alle virgole.

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

Verifica:

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

Output:

ham,5,1,bird

Potresti stare meglio semplicemente convertendo prima la tupla in un elenco:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top