如何在python中返回固定长度的字符串

如何在python中返回固定长度的字符串,python,string,Python,String,我有一个如下格式的字段:16140526,即count+,+name+Id+日期+12个字符的空格 目前,我通过执行以下操作返回它: def formatField(self) : self.Id = self.getNextId() self.cnt = self.getCount() return(self.cnt+','+self.Id+' ') 这里getNextId返回Id,getCount以字符串的形式返回count。然

我有一个如下格式的字段:16140526,即count+,+name+Id+日期+12个字符的空格

目前,我通过执行以下操作返回它:

def formatField(self) :  
    self.Id = self.getNextId()  
    self.cnt = self.getCount()  
    return(self.cnt+','+self.Id+'            ')  
这里getNextId返回Id,getCount以字符串的形式返回count。然而,我意识到硬编码12个空格字符是个坏主意,因为当id从9增加到10时,即两位数,空格应该从12个字符减少到11个字符。如何确保整个场地保持固定长度


提前谢谢

在最简单的情况下,如果已经在填充空格,可以使用Python数组切片来获得正确的长度

例如:

myWidth=30 # For example, this depends on how 'wide' you want the string to be.
myString = self.cnt+','+self.Id+'            '
return mystring[:MyWidth]
您可以尝试ljust函数

改变


所有其他选项都是有效的,我喜欢。L只是为了完整起见,我将添加以下选项:

def formatField(self, length=30):
    self.Id = self.getNextId()
    self.cnt = self.getCount()

    field = str(self.Id) + ',' + str(self.cnt)
    field += ' ' * max(0, length - len(field)

    return field
s = str(self.cnt)+','+self.Id+'            '
return s[:13]
def formatField(self, length=30):
    self.Id = self.getNextId()
    self.cnt = self.getCount()

    field = str(self.Id) + ',' + str(self.cnt)
    field += ' ' * max(0, length - len(field)

    return field