直接复制粘贴现成代码:
# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
import os
import pypinyin
import sys
# 不带声调皿style=pypinyin.NORMAL)
def pinyin(word):
s = ''
for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
s += ''.join(i)
return s
# 带声调的(默认)
def yinjie(word):
s = ''
# heteronym=True开启多音字
for i in pypinyin.pinyin(word, heteronym=True):
s = s + ''.join(i) + " "
return s
fc= arcpy.GetParameterAsText(0)
fieldname= arcpy.GetParameterAsText(1)
fieldname2= arcpy.GetParameterAsText(2)
rows = arcpy.da.UpdateCursor(fc,["shape@",fieldname,fieldname2])
try:
for row in rows:
feat = row[0]
row[2]= pinyin(row[1])
#arcpy.AddMessage(u"汉字"+row[1]+":拼音"+row[2])
arcpy.AddMessage(u"hz:" + row[1] + ":py" + row[2])
rows.updateRow(row)
del rows
except Exception as e:
arcpy.AddError(e.message)
工具视图设置如下:
运行时如果出现这种情况说明电脑环境没有配置pypinyin模块,需要配置一个:
配置方法
配置方法1:
我看有的教程是直接在py编辑器输入”pip install pypinyin“命令就可以。
配置方法2:
arcgis10.2可以按如下方法操作:
ArcGIS10.2中Python环境添加扩展包
注意:安装扩展包时版本尽量和文章里的一致,不然有可能报错。
!!!个人配置pypinyin包心得体会!!!
一开始我是在10.6版本的机器上按照“配置方法2”进行配置,结果显示失败;
接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;
!!!隔了两周!!!,按照“配置方法1:”进行尝试,显示配置失败。
但当我再次运行脚本工具时,竟然运行成功了!!!
后来我在一台10.2的机器上再次重复上述步骤探究是哪一步导致pypinyin包配置成功,也都是失败告终。
我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......
声明:本文代码来源于共享网络,本人觉得能用、有用,故分享出来。