আমার একটি পাইথন স্ক্রিপ্ট রয়েছে যা আমি আমাদের প্রকল্প ফোল্ডারে সমস্ত এমএক্সডি ফাইলের (সম্পূর্ণ পথ সহ) একটি তালিকা তৈরি করতে ব্যবহার করছি। এরপরে স্ক্রিপ্টটি তালিকাটির মধ্য দিয়ে পুনরাবৃত্তি করতে এবং প্রতিটি এমএক্সডি তে কীভাবে কীভাবে করা যায় তার জন্য ফাইন্ডআরপ্লেস ওয়ার্কস্পেসপথগুলি ব্যবহার করে। আমি যখন একটি দূষিত এমএক্সডি ফাইল হিট করেছি তখন আমি সমস্যায় পড়ছি। তারা চেষ্টা করেছে / ব্যতীত এবং এটি কাজ করতে পারেনি। আদর্শ পরিস্থিতিটি হ'ল কোনও ফাইলকে দূষিত ফাইলের নাম লিখতে হবে এবং এগিয়ে যেতে হবে যাতে আমি শেষে তাদের কাছে ফিরে আসতে পারি। আমি পাইথন স্ক্রিপ্টিং নিয়ে খুব নতুন, যে কোনও সাহায্যের প্রশংসা করা হবে।
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'
(rite) দিয়ে লগ ফাইলটি খুলবেন না -'a'
পরিবর্তে (ppend) ব্যবহার করুন যেন একাধিক দূষিত এমএক্সডি আপনি প্রতিবার ওভাররাইট করে। এছাড়াও, এটি ওভারকিল হতে পারে তবে পাইথনlogging
মডিউলটি ত্রুটিগুলি রেকর্ড করার জন্য উপযুক্ত হতে পারে।