Python间距和alignmentstring
我正在尝试添加间距来alignment两个stringvariables之间的文本,而不使用“”来这样做
试图让文本看起来像这样,第二列是alignment的。
Location: 10-10-10-10 Revision: 1 District: Tower Date: May 16, 2012 User: LOD Time: 10:15
目前有这样的编码,只是使用空格…
"Location: " + Location + " Revision: " + Revision + '\n'
我尝试过使用string.rjust&srting.ljust,但无济于事。
build议?
你应该可以使用格式化方法:
"Location: {0:20} Revision {1}".format(Location,Revision)
您将不得不根据标签的长度来计算每行的格式长度。 用户行将需要比地点或地区线更宽的格式宽度。
尝试使用%*s
和%-*s
并使用列宽前缀每个string:
>>> print "Location: %-*s Revision: %s" % (20,"10-10-10-10","1") Location: 10-10-10-10 Revision: 1 >>> print "District: %-*s Date: %s" % (20,"Tower","May 16, 2012") District: Tower Date: May 16, 2012
您可以使用expandtabs
指定tabstop,如下所示:
>>> print ('Location:'+'10-10-10-10'+'\t'+ 'Revision: 1').expandtabs(30) >>> print ('District: Tower'+'\t'+ 'Date: May 16, 2012').expandtabs(30) #Output: Location:10-10-10-10 Revision: 1 District: Tower Date: May 16, 2012
@ IronMensan的格式化方法的答案是要走的路。 但是为了回答你关于公正的问题:
>>> def printit(): ... print 'Location: 10-10-10-10'.ljust(40) + 'Revision: 1' ... print 'District: Tower'.ljust(40) + 'Date: May 16, 2012' ... print 'User: LOD'.ljust(40) + 'Time: 10:15' ... >>> printit() Location: 10-10-10-10 Revision: 1 District: Tower Date: May 16, 2012 User: LOD Time: 10:15
编辑注意这个方法并不需要你知道你的string有多长。 .format()也可能,但是我不太熟悉。
>>> uname='LOD' >>> 'User: {}'.format(uname).ljust(40) + 'Time: 10:15' 'User: LOD Time: 10:15' >>> uname='Tiddlywinks' >>> 'User: {}'.format(uname).ljust(40) + 'Time: 10:15' 'User: Tiddlywinks Time: 10:15'