web-dev-qa-db-ja.com

Pythonでこのタプルに参加できないのはなぜですか?

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

テキストファイルに書き込むには、参加する必要があります。

54
TIMEX

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'
112
Nick Craig-Wood

join()は、整数ではなく文字列でのみ機能します。 ','.join(str(i) for i in e)を使用します。

11
djc

最初にTupleをリストに単純に変換した方がよい場合があります。

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

4
user4805123

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
3
John Machin