Python 字段计算器 提取不同长度中文 字符串

以下记录Python 模式下, .split()函数使用

  正常工作中,我们经常会遇到提取一个数组中的某一项。

    比如某【备注】字段按照 “村组,姓名,证号,说明”  这样的格式,记录下了一些信息。

假设我们现在要将 【备注】字段中的 [姓名]  [证号] 信息内容单独提取出来,分别填入【XM】,【ZJH】字段。

我们能用到的方法很多,这里主要记录下 “.split()函数”来提取。好处,按照 逗号 分成数组来提取,避免【姓名】字数,不论是 2个字,3个字,4个字等都可以提取。

正常情况下输入   !字段名称!.split("分割符") [分组索引]

看不懂 先看上述提取【ZJH】对应的代码,逗号是分割符。

!BZ!.split(",")[2]

注意事项,

1,代码中涉及到的“格式符号”(区别于分割符),都是英文状态,如感叹号,点,小括号,大括号;

2,中括号 中的“分组索引”,是从   0 开始计数的。

然后,同样的代码(更改“分组索引”),可以提取【ZJH】证件号,但提取【XM】姓名,却报错,不能执行,为什么呢?因为姓名是汉字,中文.而python对中文的支持总是不及时。正确的方法是加 “u”,代码如下:

!BZ!.split(u",")[1]

当然,如果要提取村组,代码是:

!BZ!.split(u",")[0]

对比3个代码,注意最后的“分组索引”,数字从  0 开始,正好是 字符组  出现的顺序。

### 字段计算器函数的实现方式 字段计算器是一种强大的工具,允许用户通过编程语言(通常是 Python 或 VBScript)来操作地理信息系统 (GIS) 数据库中的字段值。这种功能可以用于执行简单的数学运算、复杂的逻辑判断以及基于几何属性的操作。 #### 使用 Python字段计算器函数 Python字段计算器中最常用的脚本语言之一。下面是一个具体的例子,展示如何在字段计算器中定义和调用自定义函数: ```python def shiftXCoordinate(shape): """ 将点要素的 X 坐标增加 100。 参数: shape: 输入的 Shape 对象 返回: 修改后的 Shape 对象 """ new_x = shape.firstPoint.X + 100 new_y = shape.firstPoint.Y return arcpy.Point(new_x, new_y) ``` 上述代码片段展示了如何创建一个 `shiftXCoordinate` 函数[^4],该函数接收一个形状对象作为参数,并返回一个新的点对象,其 X 坐标增加了 100 单位。此函数可以在字段计算器的“代码块”区域中定义,在表达式框中调用时只需写入 `shiftXCoordinate(!SHAPE!)`。 --- #### 自定义函数的应用场景 除了修改几何坐标外,还可以利用字段计算器完成其他复杂任务。例如,假设需要根据字符串字段提取特定字符或子串,可以参考以下示例: ```python def extractSubstring(value, length): """ 提取指定长度的前缀子串。 参数: value: 被处理的字符串 length: 需要截取的字符数量 返回: 截取后的子串 """ return value[:length] ``` 在此示例中,`extractSubstring` 函数接受两个参数:目标字符串和所需的截取长度。如果将其应用于某个字段,则可在表达式框中这样书写:`extractSubstring(!FieldName!, 5)`[^2]。 --- #### 访问几何属性 对于矢量数据集,字段计算器还支持直接访问几何属性(如面积、长度、周长)。例如,计算多边形要素的面积可采用如下方法: ```python def calculateArea(shape): """ 计算多边形的面积。 参数: shape: 多边形 Shape 对象 返回: 面积值 """ return shape.area ``` 当使用这个函数时,仅需在表达式框中输入 `calculateArea(!SHAPE!)` 来获取每个多边形的面积[^1]。 --- #### 推荐实践 尽管字段计算器兼容多种语言,但由于 Python 更加灵活且易于扩展,因此强烈推荐优先选用 Python 进行开发[^5]。此外,务必遵循标准编码规范以提高代码可读性和维护性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值