Arcpy奇怪的问题

  • 格式:docx
  • 大小:101.96 KB
  • 文档页数:2

Arcpy奇怪的问题,非常奇怪,以前编写的并且在field calculator中运行过的程序(下面的myreplace()),
今天在field calculator中死活都运行不了,在Wing IDE和IDLE中都可以运行,被郁闷了一上午,包括重装
了一次python,在网上找了半天没有结果,后来才发现是环境变量的问题。可能是因为计算中需要输入图
层,而field calculator中的python无法在环境变量中找到那个图层,所有老是出错。
真的晕了,另一个程序就不行,估计是D版的事吧,抓狂了,有可能是SP1补丁的事,期待下一个补

原因在这里:环境变量问题:出问题时的环境变量是系统默认的数据库,同样的代码运行成功,因为改变
了环境变量,既图层所在的数据库。

# -*- coding: cp936 -*-
#----------------------------------------------
#用法
#myreplace( !VEG!,"12+15",15)
#将字段!VEG!中的"12+15+2"("12+15"是要替换的字符)替换为15,其他的字符转换成数值
#----------------------------------------------
defmyreplace(str,str1,n):
if str.find(str1)>=0:
value=n
else: #相当于Val函数
count=len(str) #输入字符串的长度
i=0 #索引
str2="" #临时串
#循环读取0-9之间的数,遇到非0-9之间的数结束循环
while i < count:
if (str[i] >= "0" and str[i] <= "9"): #在0-9范围之间的保留
str2+=str[i]
else:
break
i += 1
if str2=="" : #如果是空串,则赋0
str2="0"
value=int(str2) #返回
return value