2009-05-21 55 views
2

假設這是我的語言列表。字符串和文件

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

我怎麼能寫出像一個文件:

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

我用rjust()來實現這一目標。沒有它,我該怎麼辦?

這裏我手動完成。我想避免,即;即;它應該是自動訂購

+0

-1:沒有提供代碼。 – 2009-05-21 12:49:46

回答

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語法。 (是的,我改變了這一點,因爲Brian's答案鏈接到2.5.2文檔只是爲了對比。)

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: ...