假设这是我的语言列表。
aList = ['Python','C','C++','Java']
我如何写入如下文件:
Python : ...
C : ...
C++ : ...
Java : ...
我用rjust()来实现这个目的。没有它,我该怎么办?
我在这里手动完成。我想避免那个,即;它应该自动订购。
答案 0 :(得分:5)
您可以使用string formatting运算符
执行此操作f=open('filename.txt','w')
for item in aList:
print >>f, "%-20s : ..." % item
20是字段宽度,而“ - ”表示左对齐。
答案 1 :(得分: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文档的链接后我改变了这一点。只是为了对比。)
答案 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: ...