假設這是我的語言列表。字符串和文件
aList = ['Python','C','C++','Java']
我怎麼能寫出像一個文件:
Python : ...
C : ...
C++ : ...
Java : ...
我用rjust()來實現這一目標。沒有它,我該怎麼辦?
這裏我手動完成。我想避免,即;即;它應該是自動訂購。
假設這是我的語言列表。字符串和文件
aList = ['Python','C','C++','Java']
我怎麼能寫出像一個文件:
Python : ...
C : ...
C++ : ...
Java : ...
我用rjust()來實現這一目標。沒有它,我該怎麼辦?
這裏我手動完成。我想避免,即;即;它應該是自動訂購。
您可以string formatting運營商
f=open('filename.txt','w')
for item in aList:
print >>f, "%-20s : ..." % item
的20場寬度做到這一點,而「 - 」表示要左對齊它。
你的意思是?
>>> 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文檔只是爲了對比。)
自動判斷結腸位置(使用最大寬度)和語言順序(按字母順序排序):
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: ...
-1:沒有提供代碼。 – 2009-05-21 12:49:46