2009-05-21 6 views
2

이것이 내 언어 목록이라고 가정합니다. 이를 달성하기 위해문자열 및 파일

Python  : ... 
C   : ... 
C++   : ... 
Java  : ... 

내가 사용한 rjust() :

aList = ['Python','C','C++','Java'] 

어떻게 같은 파일에 쓸 수 있습니다. 그것 없이는 어떻게 할 수 있습니까?

여기서는 수동으로 수행했습니다. 나는 을 피하고을 피하십시오. ie; 그것은 자동으로을 주문했다 shuould. "-"를 정당화 왼쪽으로 나타내는는 동안

+0

-1 : 코드가 제공되지 않습니다. –

답변

5

당신은 string formatting 사업자

f=open('filename.txt','w') 
for item in aList: 
    print >>f, "%-20s : ..." % item 

20 필드 폭은이 작업을 수행 할 수 있습니다.

5

이것을 의미합니까?

>>> languages = ['Python','C','C++','Java'] 
>>> f = open('myfile.txt', 'w') 
>>> print('\n'.join('%-10s: ...' % l for l in languages), file=f) 
>>> f.close() 
>>> print(open('myfile.txt').read()) 
Python : ... 
C   : ... 
C++  : ... 
Java  : ... 

여기에는 format specification mini language이 사용됩니다. print 문은 3.0 구문을 사용합니다. (. 그래, 그냥 대비를위한 2.5.2 문서에 Brian's 응답 링크 때문에이 변경되었습니다.)

0

자동 대장 위치 (최대 폭을 사용) 및 언어 순서 (알파벳 순으로 정렬)을 결정 :

languages = ['Python','C','C++','Java'] 
maxlen = max(map(len, languages)) 
with open('langs.txt', 'w') as f: 
    for L in sorted(languages): 
     f.write('%-*s: ...\n'% (maxlen, L)) 

print open('langs.txt').read() 

출력 :

C  : ... 
C++ : ... 
Java : ... 
Python: ... 
관련 문제