Установка фиксированной длины с помощью Python - PullRequest
8 голосов
/ 28 февраля 2011

У меня есть str, которые похожи на '60' или '100'. Мне нужно, чтобы str был '00060' и '00100',

Как я могу это сделать? код примерно такой: Я использовал «0» + «0» + «0» в качестве штекера. теперь нужно починить d == 0006000100

  a4 ='60'
  a5 ='100'

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

Ответы [ 5 ]

25 голосов
/ 28 февраля 2011

Поскольку вы управляете строками, str.zfill () делает именно то, что вам нужно.

>>> s1, s2 = '60', '100'
>>> print s1.zfill(5), s2.zfill(5)
00060 00100
10 голосов
/ 28 февраля 2011

Как это:

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

См. документы для получения дополнительной информации о форматировании чисел в виде строк.

Если ваш номер уже является строкой (как показывает ваш обновленный вопрос), вы можете заполнить его нулями до нужной ширины, используя rjust строковый метод:

num = u'60'
formatted_num = num.rjust(5, u'0')
2 голосов
/ 28 февраля 2011

Если «60» уже является строкой, вам необходимо преобразовать ее в число перед применением форматирования.Наиболее практичный из них работает так же, как printf C:

a  ="60"
b = "%05d" % int(a)
0 голосов
/ 28 февраля 2011

Если это уже строка, вы можете использовать метод .zfill ().

myval.fill(5)
0 голосов
/ 28 февраля 2011

Чтение вашей любимой документации Python приветствуется:

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

"" "

Если перед полем ширины стоит нулевой ('0') символ,это позволяет заполнять нулями. Это эквивалентно типу выравнивания '=' и символу заполнения '0'. "" "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...