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'