8

I have str that are like '60' or '100'. I need the str to be '00060' and '00100',

How can i do this? code is something like this: I was using '0'+'0'+'0' as plug. now need to fix d==0006000100

  a4 ='60'
  a5 ='100'

  d=('0'+'0'+'0'+a4+'0'+'0'+a5) 
0

5 Answers 5

25

Since you are manipulating strings, str.zfill() does exactly what you want.

>>> s1, s2 = '60', '100'
>>> print s1.zfill(5), s2.zfill(5)
00060 00100
Sign up to request clarification or add additional context in comments.

Comments

10

Like this:

num = 60 
formatted_num = u'%05d' % num

See the docs for more information about formatting numbers as strings.

If your number is already a string (as your updated question indicates), you can pad it with zeros to the right width using the rjust string method:

num = u'60'
formatted_num = num.rjust(5, u'0')

4 Comments

it comes as '60' i am combining example 0006000100,
@user: OK, it seems like Wang's answer (using zfill) is the way to go in your case since it's built for exactly the type of thing you're doing
Image
From docs.python.org/release/3.0.1/whatsnew/3.0.html: "the % operator is still supported; it will be deprecated in Python 3.1 and removed from the language at some later time.". Use "".format() instead for future compatibility: u"{0:0>5d}".format(60) or u"{0:0>5s}".format(str(60)).
Image
I just discovered you can use !s in the format string to force string conversion, so you need only a single case to handle both 60 and '60': "{0!s:0>5s}".format(60)
2

If "60" is already a string, you have to convert it to a number before applying the formatting. The most practical one works just like C's printf:

a  ="60"
b = "%05d" % int(a)

Comments

0

Reading your favorite Python documentation appreciated:

http://docs.python.org/library/string.html#formatstrings

"""

If the width field is preceded by a zero ('0') character, this enables zero-padding. This is equivalent to an alignment type of '=' and a fill character of '0'. """

Comments

0

If it's already a string you might want to use the .zfill() method.

myval.fill(5)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.