e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
텍스트 파일에 쓸 수 있도록 가입해야합니다.왜이 튜플을 파이썬으로 결합 할 수 없습니까?
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
텍스트 파일에 쓸 수 있도록 가입해야합니다.왜이 튜플을 파이썬으로 결합 할 수 없습니까?
join
은 문자열의 목록을합니다, 그래서
>>> e = ('ham', 5, 1, 'bird')
>>> ','.join(map(str,e))
'ham,5,1,bird'
첫 번째 또는
>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
repr() 대신 str()을 사용하면 손실 정보가 발생할 수 있습니다. –
그것은 당신의 목적에 달려 있지만,'str()'은 일반적으로 사용자에게 무엇을 보여주기를 원하는가 (즉, OP가 원했던 로그 파일). –
사실. str (__str__ 이상, __unicode__)은 사람을위한 것입니다. 그리고 문제는 인간을위한 로그 파일을 말합니다. 그래서이 경우에는 str()이 __repr__보다 낫다고 생각합니다. – extraneon
join()
은 정수가 아닌 문자열에서만 작동합니다. ','.join(str(i) for i in e)
을 사용하십시오.
괄호가없는 튜플에 대한 주석은 훌륭합니다. –
사용 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
불필요하게 복잡해 보입니다. –
@LS : 모든 것이 그 것처럼 보이지 않습니다. 쉼표 등을 이스케이프 처리하지 않고도 쉼표 구분 기호를 사용하여 간단하게 매우 빠르게 풀립니다. –
당신은 단순히 먼저 목록에 튜플을 변환 더 나을 수 있습니다 : BTW
e = ('ham', 5, 1, 'bird') liste = list(e) ','.join(liste)
, 너도 알았어? 괄호없이 첫 줄을 쓸 수 있습니까? 본질적으로 소음과 같은 것을 없애는 것이 좋습니다. – djc