Lebih banyak lagi

Lulus nilai dari GetParameterAsText ke row.getValue ()?

Lulus nilai dari GetParameterAsText ke row.getValue ()?


Saya cuba membina alat mudah yang menggabungkan nilai dari dua medan, dan merakamnya di medan yang baru dibuat - semuanya ada dalam jadual yang sama. Alat ini harus berfungsi dengan shapefile, menggabungkan semua jenis medan dan membuat medan (dengan nama yang dipilih oleh pengguna). Masalah saya ialah bagaimana meneruskan nilai 'new_field_name' ke baris.getValue () (baris terakhir kedua kod). Atau cara lain untuk melakukan perkara yang sama?

masa import, arcpy startTime = time.clock () cetak "Mula" shapefile = arcpy.GetParameterAsText (0) field_name_1 = arcpy.GetParameterAsText (1) field_name_2 = arcpy.GetParameterAsText (2) new_field_name = arcpy_papan_papan_papan .GetParameterAsText (4) separator = arcpy.GetParameterAsText (5) arcpy.env.workspace = shapefile arcpy.env.overwriteOutput = True arcpy.AddField_management (shapefile, new_field_name, "Text", "__ "," .UpdateCursor (shapefile) untuk baris in cur: row.getValue () = (str (row.getValue (field_name_1)) + separator + str (row.getValue (field_name_2))) cur.updateRow (baris)

Sekiranya anda perlu menggunakan dataranKursor Kemas kini, gunakansetValuebukannyagetValue

cur = arcpy.UpdateCursor (shapefile) untuk baris dalam kur: newValue = str (row.getValue (field_name_1)) + separator + str (row.getValue (field_name_2)) row.setValue (new_field_name, newValue) cur.updateRow (baris)

Sintaks kursor menjadi sedikit lebih mudah apabila anda dapat menggunakan da.UpdateCursor:

dengan arcpy.da.UpdateCursor (shapefile, [field_name_1, field_name_2, new_field_name]) sebagai kursor: untuk baris dalam kursor: newValue = str (baris [0]) + pemisah + str (baris [1]) baris [2] = nilai baru kursor.updateRow (baris)

Cuba row.setValue untuk lajur yang baru ditambahkan dalam kursor kemas kini anda.