使用ArcPy,如何为不同功能切换环境?

时间:2019-05-14 21:17:47

标签: python arcgis arcpy

我有一个具有多个功能的脚本。我为脚本设置了全局环境,但是一个功能使用本地环境创建列表。似乎使用不同的环境会导致奇怪的行为,功能后言使用的是本地环境而不是全局环境。我如何才能让他们使用适当的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的列表。

0 个答案:

没有答案