我有一个具有多个功能的脚本。我为脚本设置了全局环境,但是一个功能使用本地环境创建列表。似乎使用不同的环境会导致奇怪的行为,功能后言使用的是本地环境而不是全局环境。我如何才能让他们使用适当的env而不弄乱其他功能?
我试图在每个函数中本地设置env,但这使我出错,提示我的数据不存在。 我试图通过导入来使用单独的env调用该函数。但是我创建的列表仍然使用了错误的环境。
def shpToGDB():
#set local environment for this function
arcpy.env.workspace =
r'C:\Users\JBurton_AOR\Documents\LakeShasta\Shapefiles'
arcpy.env.overwriteOutput = 'True'
我的第二个函数addFields应该使用全局环境,但使用上面的函数中的环境。我试图为addFields设置本地环境,但是抛出一个错误,说我的数据不存在。
def addFields():
arcpy.env.workspace =
r'C:\Users\JBurton_AOR\Documents\ArcGIS\Projects\LakeShasta\TrackLogs.gdb'
arcpy.env.overwriteOutput = 'True'
logs = arcpy.ListFeatureClasses()
print (logs)
#Variable for Calculate Geometry
field = 'ACRES'
#for loop to add fields and calculate acreage
for fc in logs:
#define field name and expression
fieldName = 'FILE'
expression = str(fc) #populates field
#Calculate FILE name
arcpy.CalculateField_management(fc, fieldName, '"'+expression+'"',
"PYTHON")
print ('calculated fields')
return
我希望从GDB中列出要素类,但我却在另一个目录中获得了shapefile的列表。