2016-01-15 32 views
2

我需要替换一列的属性表中的值(将名为“label”的列中的零替换为100)。这可能使用ogr或python?我必须为500个以上的形状文件做这个。如何替换一列的属性表中的值?

+0

是的,你可以很容易地做到这一点的蟒蛇。你尝试了什么或者你卡在哪里?你可以先看看['os.walk()'](https://docs.python.org/3/library/os.html#os.walk)python函数(为了遍历目录结构并获得你的文件的名称),那么你可以试试['fiona'](https://github.com/Toblerity/Fiona)python模块(它依赖于OGR,但提供了一个更简单的API,特别是当你只与属性一起工作)。根据是否急于完成任务,您还可以使用“线程”模块。 – mgc

回答

1

在Esri ArcGIS领域,Update Cursors通常用于此类操作。

例如

import arcpy 

# Your input feature class 
fc = r'C:\path\to\your.gdb\feature_class' 

# Start an update cursor and change values from 0 to 100 in a field called "your_field" 
with arcpy.da.UpdateCursor(fc, "your_field") as cursor: 
    for row in cursor: 
     if row[0] == 0: 
      row[0] = 100 
     cursor.updateRow(row)