আমি জানি এই প্রশ্নটি কয়েক মাস পুরানো, তবে এটি অন্যকে সাহায্য করার ক্ষেত্রে আমি এটি পোস্ট করছি। আমি এই ক্লেজটি এমএক্সডি ডকুমেন্টগুলি থেকে সংস্করণ নম্বরগুলি পার্স করতে বিকাশ করেছি। এটি মূলত একটি এমএক্সডি ডকুমেন্টের প্রথম 4000 বা তত অক্ষর পড়ে এবং একটি সংস্করণ নম্বর অনুসন্ধান করে। আমি এমএক্সডি 9.2, 9.3, 10.0 এবং 10.1 সংস্করণ দিয়ে পরীক্ষা করেছি।
import re
def getMXDVersion(mxdFile):
matchPattern = re.compile("9.2|9.3|10.0|10.1|10.2")
with open(mxdFile, 'rb') as mxd:
fileContents = mxd.read().decode('latin1')[1000:4500]
removedChars = [x for x in fileContents if x not in [u'\xff',u'\x00',u'\x01',u'\t']]
joinedChars = ''.join(removedChars)
regexMatch = re.findall(matchPattern, joinedChars)
if len(regexMatch) > 0:
version = regexMatch[0]
return version
else:
return 'version could not be determined for ' + mxdFile
এখানে এমএক্সডি ফাইলগুলির জন্য একটি ফোল্ডার স্ক্যান করার এবং সংস্করণ এবং নামগুলি মুদ্রণের উদাহরণ রয়েছে
import os
import glob
folder = r'C:\Users\Administrator\Desktop\mxd_examples'
mxdFiles = glob.glob(os.path.join(folder, '*.mxd'))
for mxdFile in mxdFiles:
fileName = os.path.basename(mxdFile)
version = getMXDVersion(mxdFile)
print version, fileName
যা এটি ফেরত দেয়:
>>>
10.0 Arch_Cape_DRG.mxd
9.2 class_exercise.mxd
9.3 colored_relief2.mxd
10.1 CountyIcons.mxd
10.0 DEM_Template.mxd
9.2 ex_2.mxd
10.0 nairobimap.mxd
10.0 slope_script_example.mxd
10.1 TrailMapTemplateBetter.mxd
10.0 Wickiup_Mountain_DEM.mxd
>>>