หนึ่งจะสามารถเปลี่ยนเส้นทางข้อมูลแหล่งที่มาสำหรับทุกไฟล์เลเยอร์ในโฟลเดอร์ X โดยใช้ arcpy ได้อย่างไร
ฉันติดตามการอัปเดตและแก้ไขแหล่งข้อมูลด้วย arcpy.mappingให้ดีที่สุดเท่าที่จะทำได้ แต่สิ่งที่ฉันได้รับคือไม่ช่วยเหลือRuntime error <type 'exceptions.ValueError'>: Layer: Unexpected error
ซึ่งไม่ได้บอกฉันเพียงพอที่จะแก้ไขสิ่งที่ผิดหรือขาดหายไป
นี่คือรหัส (ง่ายต่อการทดสอบไฟล์เลเยอร์เดียว):
import arcpy, os
fname = r'K:\Layers\xxx.lyr'
lyr = arcpy.mapping.Layer(fname)
oldpath = lyr.workspacePath
print 'oldpath: ', oldpath
lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb')
print 'newpath: ', lyr.workspacePath
และผลลัพธ์:
oldpath: K:\Canvec_Utility\Temp.gdb
Traceback (most recent call last):
File "x10x.py", line 12, in <module>
lyr.findAndReplaceWorkspacePath(oldpath, r'C:\some\other.gdb')
File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line 181, in fn_
return fn(*args, **kw)
File "C:\ESRI\ArcGIS\Desktop10.0\arcpy\arcpy\_mapping.py", line 601, in findAndReplaceWorkspacePath
return convertArcObjectToPythonObject(self._arc_object.findAndReplaceWorkspacePath(*gp_fixargs((find_workspace_path, replace_workspace_path, validate), True
)))
ValueError: Layer: Unexpected error
((ย้ายส่วน 'อัปเดต' ไปยังคำตอบ))
Runtime error...
อ้างถึงข้างต้นมาจากเปลือกหลามแบบโต้ตอบใน Arccatalog ซึ่งไม่ได้ให้การสืบค้นกลับ ผลลัพธ์ที่มีการติดตามย้อนกลับถูกคัดลอกจากเชลล์คำสั่ง