मुझे क्या करना है:
- तालिका / सुविधा वर्ग के फ़ील्ड नाम का नाम बदलें
- सभी मानों को नए क्षेत्र में कॉपी करें
अब तक मैंने निम्नलिखित कोड @ कलाकृति 21 के रूप में सुझाए हैं:
import sys
import traceback
import arcpy
from arcpy import env
## ARGUMENTS
# argv[1] = input table/feature class path
# argv[2] = input old field name
# argv[3] = input new field name
path = sys.argv[1]
oldFieldName = sys.argv[2]
newFieldName = sys.argv[3]
env.overwriteOutput = True
fields = arcpy.ListFields(path)
for field in fields:
if field.aliasName == oldFieldName:
if not oldFieldName == newFieldName:
fieldType = field.type
# Add new field
arcpy.AddField_management(path, newFieldName, fieldType)
#Calculates the new field based on old field values
arcpy.CalculateField_management(path, newFieldName, "!"+oldFieldName+"!", "PYTHON", "")
# Delete the old field (if necessary)
arcpy.DeleteField_management(path, oldFieldName)
मैं विधि के क्षेत्र प्रकार के field.type
लिए मैप कैसे कर सकता हूं AddField_management
? और जब क्षेत्र एक मध्य स्थान पर होता है, तो क्षेत्र को मध्य से हटा दिया जाता है और अंतिम में जोड़ा जाता है। ऐसा नहीं लगता है जैसे कि क्षेत्र का नाम बदल दिया गया है।
क्या कोई बेहतर उपाय है जो मुझे इन चीजों को करने में मदद करे?
old_field
एक चर नाम या पुराने क्षेत्र का वास्तविक नाम? यदि यह एक चर नाम है, तो आपको ब्रैकेट्स (VB parser) या विस्मयादिबोधक बिंदुओं (Python parser) के साथ चर के मान को लपेटने के लिए string formatting या concatenation का उपयोग करने की आवश्यकता है।