Làm thế nào người ta có thể thay đổi đường dẫn dữ liệu nguồn cho mọi tệp lớp trong thư mục X bằng arcpy?
Tôi đã theo dõi Cập nhật và sửa các nguồn dữ liệu bằng arcpy.micking một cách tốt nhất có thể, nhưng tất cả những gì tôi nhận được là không hữu ích Runtime error <type 'exceptions.ValueError'>: Layer: Unexpected error
, điều đó không đủ cho tôi để khắc phục những gì sai hoặc thiếu.
Đây là mã (được đơn giản hóa để kiểm tra một tệp lớp):
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
và kết quả:
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
((chuyển phần 'cập nhật' thành câu trả lời))
Runtime error...
trích dẫn ở trên là từ vỏ python tương tác trong ArcCatalog, mà không đưa ra một traceback. Các kết quả với truy nguyên được sao chép từ một vỏ lệnh.