Answers:
Python有一个内置的前导零。使用str.zfill()
到前导零添加到文本字段。
my_string = "1"
print my_string.zfill(2) # Prints 01
my_string = "1000"
print my_string.zfill(2) # Prints 1000
(示例来自https://stackoverflow.com/a/21620624/5754917)
因此,在字段计算器中,您只需要使用ID指定字段名称,然后用零填充即可
str(!myfield!).zfill(5)
最终结果:
切记将字段计算器切换为“ Python分析器”
只需将您的文本用引号引起来。如果处于VB脚本模式,则双引号;如果处于Python模式,则双引号或单引号。
解释:当您只输入数字时,您将为Field Calculator提供一个整数形式的值,该值将转换为字符串,以便您将其输入到字符串类型字段中。对于整数,前导零没有值也没有意义,因此将其省略。如果将其用引号引起来,您将传递一个字符串(该字符串已经是正确的数据类型),因此将其保留下来。
这也假定该字段实际上是“文本”类型。也许将其设置为“长整数”或“短整数”,也会导致这种现象。
您可以使用Python代码块。
在代码块中添加以下函数定义:
def addZero(value):
if value <= 9:
output = '0000' + str(value)
elif value <= 99:
output = '000' + str(value)
elif value <= 999:
output = '00' + str(value)
elif value <= 9999:
output = '0' + str(value)
return output
您可以将其用作:
addZero(!Field!) # numeric field
要么
addZero(123) # for example
正如其他答案中提到的那样,您需要确保将数字转换为字符串。
如果您丢失了0或将它们放在数字字段中,则创建一个字符串列宽度为5的代码,只需输入以下Python命令:
str(!MYFIELD!).zfill(5)