Tôi có một tập lệnh python mà tôi đang sử dụng để tạo danh sách tất cả các tệp mxd (có đường dẫn đầy đủ) trong thư mục Dự án của chúng tôi. Tập lệnh sau đó sử dụng tập lệnh đó để lặp qua danh sách và thực hiện một findandreplaceworkspacepaths trên mỗi mxd trên mỗi ESRI. Tôi đang gặp vấn đề khi tôi nhấn một tập tin mxd bị hỏng. Họ đã thử / ngoại trừ và không làm cho nó hoạt động. Tình huống lý tưởng là ghi tên tệp bị hỏng vào một tệp và di chuyển để cuối cùng tôi có thể quay lại với chúng. Tôi rất mới với kịch bản python, bất kỳ trợ giúp sẽ được đánh giá rất cao.
import arcpy, os, sys, traceback, time
oldpath = 'W:'
newpath = 'W:\\GIS'
def find(path,pattern):
matches = []
for r,d,f in os.walk(path):
for files in f:
if files.endswith(pattern):
fpath = os.path.join(r,files)
matches.append(fpath)
print (fpath)
return matches
print ("Go: ")
mxdlist = (find('C:\\gis','.mxd'))
print (mxdlist)
print ("Starting Path Conversion")
try:
for mxdold in mxdlist:
mxd = arcpy.mapping.MapDocument(mxdold)
mxd.findAndReplaceWorkspacePaths(oldpath, newpath)
time.sleep(6)
mxd.save()
time.sleep(6)
print (mxdold)
del mxd
except arcpy.ExecuteError:
arcpy.AddError(arcpy.GetMessages(2))
except:
arcpy.AddError("Non-tool error occurred")
'w'
(nghi thức) - sử dụng'a'
(ppend) thay vào đó như thể có nhiều hơn một mxd bị hỏng, bạn sẽ ghi đè lên mỗi lần. Ngoài ra, nó có thể là quá mức cần thiết, nhưnglogging
mô-đun Python có thể đáng xem xét để ghi lại lỗi.