Daha çox

GetParameterAsText-dən row.getValue () -ə dəyər ötürülməsi?


İki sahədəki dəyərləri birləşdirən sadə bir alət yaratmağa və yeni yaradılan sahəyə yazmağa çalışıram - hər şeyi eyni cədvəldə. Bu alət hər hansı bir shapefile ilə işləməli, istənilən sahəni birləşdirməli və bir sahə yaratmalıdır (istifadəçi tərəfindən seçilmiş adla). Problemim 'new_field_name "dəyərinin row.getValue () (kodun ikinci son satırı) içərisinə necə ötürülməsidir. Və ya eyni şəkildə etmənin başqa yolları?

idxal vaxtı, arcpy startTime = time.clock () çap "Başlat" shapefile = arcpy.GetParameterAsText (0) field_name_1 = arcpy.GetParameterAsText (1) field_name_2 = arcpy.GetParameterAsText (2) new_field_name = new_field = arcpy. .GetParameterAsText (4) separator = arcpy.GetParameterAsText (5) arcpy.env.workspace = shapefile arcpy.env.overwriteOutput = True arcpy.AddField_management (shapefile, new_field_name, "Text", "" .UpdateCursor (shapefile) cərgədəki sıra üçün: row.getValue () = (str (row.getValue (field_name_1)) + separator + str (row.getValue (field_name_2))) cur.updateRow (sıra)

Düzənlikdən istifadə etməyiniz lazımdırsaUpdateCursor, istifadə edinsetValueəvəzinəgetValue

cur = arcpy.UpdateCursor (shapefile) cərgədəki sıra üçün: newValue = str (row.getValue (field_name_1)) + separator + str (row.getValue (field_name_2)) row.setValue (new_field_name, newValue) cur.updateRow (sıra)

Kursor sintaksisini istifadə edə bildiyiniz zaman bir az daha sadə olur da.UpdateCursor:

arcpy.da.UpdateCursor ilə (shapefile, [field_name_1, field_name_2, new_field_name]) kursor kimi: kursordakı sıra üçün: newValue = str (sıra [0]) + ayırıcı + str (sıra [1]) sıra [2] = newValue cursor.updateRow (sıra)

Yeniləmə kursorunuza yeni əlavə edilmiş sütun üçün row.setValue cəhd edin.