ArcGIS字段计算器|Python2.7字符串方法速查表(直接复制可用)
Hello~ 做ArcGIS数据处理的小伙伴,是不是经常在字段计算器里卡壳?尤其是Python2.7的字符串方法,记不住用法、分不清参数,每次都要翻半天资料?
今天整理了「ArcGIS字段计算器专属」Python2.7字符串方法速查表,每个方法都含功能说明+直接复制的代码+实例,适配ArcGIS10.x版本,避开空值报错、中文乱码坑,新手也能直接上手!
📌 前置必看(避坑关键)
- 字段计算器顶部「解析器」务必选择「Python」;
- 中文字符串前加 u(如 u"公园"),避免Python2.7中文乱码;
- 所有代码均适配字段计算器,复制后替换「!字段!」为你的实际字段名即可使用。
一、查找与定位类(核心常用)
用于查找字符串中特定子串的位置,适配地址提取、路径解析等场景。
1. find()
功能说明:查找子串第一次出现的起始索引,找不到返回 -1(不报错,比index()更安全)
字段=代码:
!字段!.find(u"子串") if !字段! is not None else -1
实例:输入 u"北京公园路" → 输出 2(索引从0开始,“公”在第3位,对应索引2)
2. rfind()
功能说明:查找子串最后一次出现的起始索引,找不到返回 -1
字段=代码:
!字段!.rfind(u"子串") if !字段! is not None else -1
实例:输入 u"C:\\data\\file.shp" → 输出 7(最后一个“\”的索引)
3. index()
功能说明:同find(),但找不到会报错(慎用,不推荐空值/不确定子串存在时使用)
字段=代码:
实例:输入 u"北京公园路" → 输出 2
4. rindex()
功能说明:同rfind(),但找不到会报错(慎用)
字段=代码:
实例:输入 u"C:\\data\\file.shp" → 输出 7
二、判断类(返回True/False)
用于判断字符串的格式(纯数字、纯字母等),适配数据筛选、合法性验证场景。
5. isalnum()
功能说明:判断字符串是否只包含字母或数字(空字符串返回False)
字段=代码:
!字段!.isalnum() if !字段! is not None else False
实例:输入 u"A123" → 输出True;输入 u"A 123" → 输出 False
6. isalpha()
功能说明:判断字符串是否只包含字母
字段=代码:
!字段!.isalpha() if !字段! is not None else False
实例:输入 u"Hello" → 输出 True;输入 u"Hello123" → 输出 False
7. isdigit()
功能说明:判断字符串是否只包含数字(仅适配整数,小数返回False)
字段=代码:
!字段!.isdigit() if !字段! is not None else False
实例:输入u"123" → 输出 True;输入 u"123号" → 输出 False
8. islower()
功能说明:判断字符串是否全为小写字母
字段=代码:
!字段!.islower() if !字段! is not None else False
实例:输入 u"hello" → 输出 True;输入 u"Hello" → 输出 False
9. isspace()
功能说明:判断字符串是否只包含空白字符(空格、制表符、换行符等)
字段=代码:
!字段!.isspace() if !字段! is not None else False
实例:输入u"" → 输出 True;输入 u"空格+文字" → 输出 False
10. istitle()
功能说明:判断字符串是否为标题格式(每个单词首字母大写,其余小写)
字段=代码:
!字段!.istitle() if !字段! is not None else False
实例:输入 u"Hello World" → 输出 True;输入 u"hello World" → 输出 False
11. isupper()
功能说明:判断字符串是否全为大写字母
字段=代码:
!字段!.isupper() if !字段! is not None else False
实例:输入 u"HELLO" → 输出 True;输入 u"HELLO123" → 输出 False
三、大小写转换类
用于规范英文文本格式,适配英文字段统一、标注规范化等场景。
12. lower()
功能说明:将字符串转换为全小写
字段=代码:
!字段!.lower() if !字段! is not None else u""
实例:输入 u"HELLO" → 输出 u"hello"
13. upper()
功能说明:将字符串转换为全大写
字段=代码:
!字段!.upper() if !字段! is not None else u""
实例:输入 u"hello" → 输出 u"HELLO"
14. swapcase()
功能说明:将字符串中的大小写互换(大写变小写,小写变大写)
字段=代码:
!字段!.swapcase() if !字段! is not None else u""
实例:输入 u"Hello" → 输出 u"hELLO"
15. title()
功能说明:将字符串转换为标题格式(每个单词首字母大写)
字段=代码:
!字段!.title() if !字段! is not None else u""
实例:输入 u"hello world" → 输出 u"Hello World"
四、去除空白类(核心常用)
用于清洗字段中的多余空白,适配名称、地址等字段的标准化处理。
16. strip()
功能说明:去除字符串左右两侧的空白字符(可指定字符,如strip("*")去除两侧*)
字段=代码:
!字段!.strip() if !字段! is not None else u""
实例:输入 u"公园" → 输出 u"公园"
17. lstrip()
功能说明:去除字符串左侧的空白字符(或指定字符)
字段=代码:
!字段!.lstrip() if !字段! is not None else u""
实例:输入 u"公园" → 输出 u"公园"
18. rstrip()
功能说明:去除字符串右侧的空白字符(或指定字符)
字段=代码:
!字段!.rstrip() if !字段! is not None else u""
实例:输入 u"公园" → 输出 u"公园"
五、填充与对齐类
用于统一字段长度、规范编号格式,适配编号标准化、标注对齐等场景。
19. ljust()
功能说明:将字符串左对齐,右侧用指定字符填充至目标长度(默认填充空格)
字段=代码:
!字段!.ljust(5, "0") if !字段! is not None else u""
(5是目标长度,"0"是填充字符)
实例:输入 u"A1" → 输出 u"A1000"
20. rjust()
功能说明:将字符串右对齐,左侧用指定字符填充至目标长度
字段=代码:
!字段!.rjust(5, "0") if !字段! is not None else u""
实例:输入 u"A1" → 输出 u"000A1"
21. zfill()
功能说明:将字符串左侧补0至指定长度(专门用于数字字符串,保留负号)
字段=代码:
!字段!.zfill(5) if !字段! is not None else u""
实例:输入 u"123" → 输出 u"00123";输入 u"-123" → 输出 u"-0123"
六、分割与连接类(核心常用)
用于拆分字符串、拼接多个字段,适配地址提取、文件名解析、多字段合并等场景。
22. split()
功能说明:按指定分隔符从左往右分割字符串,返回列表,取指定索引即可提取对应部分
字段=代码:
!字段!.split(u"分隔符")[0] if !字段! is not None else u""([0]
取第一部分,[1]取第二部分)
实例:输入 u"吉林省四平市" → 输出 u"吉林省"(按“省”分割,取[0])
23. rsplit()
功能说明:按指定分隔符从右往左分割字符串,可指定分割次数(避免中间分隔符干扰)
字段=代码:
!字段!.rsplit(u".", 1)[1] if !字段! is not None else u""
(1是分割次数,[1]取最后一部分)
实例:输入 u"map.shp" → 输出 u"shp"(提取文件扩展名)
24. splitlines()
功能说明:按换行符分割字符串,返回列表,取索引即可提取指定行
字段=代码:
!字段!.splitlines()[0] if !字段! is not None else u""([0]
取第一行)
实例:输入 u"第一行\n第二行" → 输出 u"第一行"
25. partition()
功能说明:按指定分隔符将字符串分成3部分(分隔符前、分隔符、分隔符后),取[2]提取分隔符后内容
字段=代码:
!字段!.partition(u":")[2] if !字段! is not None else u""
实例:输入 u"名称:公园" → 输出u"公园"
26. rpartition()
功能说明:从右往左按指定分隔符将字符串分成3部分,取[2]提取最后一个分隔符后内容
字段=代码:
!字段!.rpartition("\\\\")[2] if !字段! is not None else u""
(路径反斜杠需转义为\\\\)
实例:输入 u"C:\\data\\file.shp" → 输出 u"file.shp"(提取文件名)
27. join()
功能说明:用指定字符连接多个字段或列表,适配多字段合并场景
字段=代码:
u"-".join([!省!, !市!]) if !省! is not None and !市! is not
None else u""(“-”是连接字符)
实例:!省!=u"吉林"、!市!=u"四平" → 输出 u"吉林-四平"
七、替换与翻译类
用于批量修改字符串内容,适配文本标准化、冗余内容清理等场景。
28. replace()
功能说明:将字符串中的旧文本替换为新文本,可指定替换次数(默认全部替换)
字段=代码:
!字段!.replace(u"旧", u"新") if !字段! is not None else
u""(需替换指定次数加第三个参数,如replace(u"旧", u"新", 2))
实例:输入 u"光明街道" → 输出 u"光明路"(将“街道”替换为“路”)
29. expandtabs()
功能说明:将字符串中的制表符 \t 替换为空格,默认替换为8个空格,可指定空格数
字段=代码:
!字段!.expandtabs(4) if !字段! is not None else u""
(4是替换后的空格数)
实例:输入 u"Hello\tWorld" → 输出 u"HelloWorld"
八、格式化与长度类
用于字段拼接、长度统计、数据类型转换,适配编号生成、字段长度验证等场景。
30. format()
功能说明:格式化拼接多个字段,用{}占位,比直接用+拼接更灵活、不易出错
字段=代码:
u"{}-{}".format(!省!, !市!) if !省! is not None and !市! is not None else u""
实例:!省!=u"吉林"、!市!=u"四平" → 输出u"吉林-四平"
31. len()
功能说明:返回字符串的长度(字符个数),适配字段长度验证场景
字段=代码:
len(!字段!) if !字段! is not None else 0
实例:输入 u"吉林省四平市" → 输出 6(共6个字符)
32. str()
功能说明:将对象(如数字、日期)转换为字符串,适配数字字段与文本字段拼接场景
字段=代码:
u"ID_" + str(!OBJECTID!) if !OBJECTID! is not None else u""
(!OBJECTID!是数字字段)
实例:!OBJECTID!=1 → 输出 u"ID_1"
最后,收藏这篇速查表,下次在字段计算器里卡壳时,直接打开复制,省去翻资料的时间!