2011-03-28 4 views
1
for i in range (0,len(list4)): 
    ws.write(1, 0, datetime.now(), style1) 
    ws.write(2, 1, 1) 
    ws.write(2, 2, xlwt.Formula("A3+B3")) 
    wb.save('example.xls') 

어떻게 일반화 (A3 + B3)합니까?변수와 문자열의 파이썬 연결

'"A" + i' + '"B" + i' 

이것이 맞습니까?

답변

7
'A%(row)d+B%(row)d' % {'row': 3} 

또는

'A{0}+B{0}'.format(3) 
+0

+1 내가 문자열의 버전이 서식 생각하기 때문에 내가 upvoting 해요 당신이 사용하는 루틴은 내 옛날 방식보다 깨끗합니다. 의미있는 이름을 사용할 수있는 첫 번째 것을 선호합니다. –

+3

새로운 [PEP 3101] (http://docs.python.org/dev/py3k/whatsnew/2.6.html#pep-3101)'.format' 구문에서 명명 된 필드를 사용할 수 있음을 지적하기 위해 : "A {행} + B {행}"형식 (행 = 3)'. '0'은 "첫 번째 값 사용"을 의미합니다. – katrielalex

3

당신이 필요합니다

ws.write(2, 2, xlwt.Formula("A" + str(i) + "+B" + str(i))) 

이상의 관용구 :

ws.write(2, 2, xlwt.Formula("A%d+B%d" % (i,i))) 
관련 문제