我试图将文件名和路径写入要素类中的两个独立字段,并且每个记录的值取决于在列表中查找匹配项。当我运行我的代码时,它为每个记录写入相同的值,所以出了问题。我认为它完成了第一个匹配,并一遍又一遍地写这个值,但是我希望它查看我的搜索光标设置的字段中的值,然后在列表中找到匹配项并将其写入两个字段。我错过了什么?在
import arcpy, os
photos_path = r'P:\Records\GIS\Projects\D04_OHS\OverheadSignStructurePics'
OHS_FC = r'D:\Records\GIS\Projects\D04_OHS\D04_OHS.gdb\D04_OHS'
ID_fld = 'OSMI_ID'
file_nm_fld = 'LINK_FILENAME'
path_fld ='LINK_PATH'
photos_list = []
for dirpath, dirnames, filenames in os.walk(photos_path):
for filename in filenames:
fullPath = dirpath+'\\'+filename
if fullPath not in photos_list:
photos_list.append(fullPath)
arcpy.AddField_management(OHS_FC,file_nm_fld,'TEXT',100)
arcpy.AddField_management(OHS_FC,path_fld,'TEXT',300)
srch_cursor = arcpy.da.SearchCursor(OHS_FC,ID_fld)
updt_cursor_fn = arcpy.da.UpdateCursor(OHS_FC,file_nm_fld)
updt_cursor_fp = arcpy.da.UpdateCursor(OHS_FC,path_fld)
for row in srch_cursor:
val = str(row[0])
for p in photos_list:
f_name, f_path = os.path.split(p)
if val in p:
#print val
for u_row1 in updt_cursor_fn:
u_row1[0] = f_name
updt_cursor_fn.updateRow(u_row1)
for u_row2 in updt_cursor_fp:
u_row2[0] = f_path
updt_cursor_fp.updateRow(u_row2)
您不需要搜索光标或单独的更新光标。只需使用一个更新游标并使用它来查找匹配项并更新字段。确保将需要的所有字段添加到更新光标中。在
相关问题 更多 >
编程相关推荐