我试图在shapefile的字段中创建一个循环。这个字段名为AGLOMERADOS,我想在它们之间循环。
一旦我有了这个列表,我想开始选择我的形状文件的属性,并为每个选择创建一个形状文件。
我有空的形状文件!!!:(
我使用的代码如下所示:
import os, arcpy, numpy
from arcpy import env
arcpy.env.overwriteOutput = True
def unique_values(table, field):
with arcpy.da.SearchCursor(table, [field]) as cursor:
return sorted({row[0] for row in cursor})
agloms=unique_values(r'C:\Users\gdorna\Dropbox\CIPUV\lilp\Proyecto LILP 2014 - Infraestructura\Lincoln Infra - GIS\Iterate agloms\agloms.gdb\pais','AGLOMERADO')
i=0
for lugares in agloms:
arcpy.SelectLayerByAttribute_management("pais","NEW_SELECTION",""""AGLOMERADO" = 'lugares'""")
arcpy.CopyFeatures_management('pais', "a_" + `i`)
print `lugares` + "----->" + `i`
i=i+1
我应该得到的清单应该是这样的,
agloms='BAHIA BLANCA'、'CIPOLLETTI'、'CONCORDIA'、'FORMOSA'、,。。。在
可是,我的手镯是:[你的白兰地,你的西波利蒂,你的康科迪亚,你的福尔摩沙,你的大科尔多瓦…]这是为什么?!?!??在
谢谢!在
Tags:
问题出在你的SQL语句上。您试图输入lugares作为变量,但是它是字符串的一部分。在
而不是这样:
试试这个:
^{pr2}$我希望这有帮助!在
import os, arcpy from arcpy import env arcpy.env.overwriteOutput = True def unique_values(table, field): with arcpy.da.SearchCursor(table, [field]) as cursor: return sorted({row[0] for row in cursor}) agloms = unique_values(table, field) i=21 for lugares in agloms: arcpy.MakeFeatureLayer_management(table, "a_" + 'i+1', "\"field\" = '" + lugares + "'") arcpy.FeatureClassToFeatureClass_conversion("a_" + 'i+1', r'your out_path', "a_" + lugares) print lugares + " ->" + 'i' i=i+1
;“u”表示字符串的格式是unicode。当您打印一个列表时,它将包含该标记以指示字符串格式。如果要运行以下代码:
输出将是
^{pr2}$