Working from @PolyGeo's answer, here's some code that gets the info out of ArcMap:
import arcpy
srcPath = "D:\\SomeFolder\\Data\\"
srcFile = "MyMap.mxd"
# set working mxd
mxd = arcpy.mapping.MapDocument(srcPath+srcFile)
with open(srcPath+'filename.txt', "w") as outtxt:
for df in arcpy.mapping.ListDataFrames(mxd,"*"):
for bkmk in arcpy.mapping.ListBookmarks(mxd, "", df):
e = bkmk.extent
CRS=2193
tmp_lst = list((bkmk.name.encode("utf-8").replace(" ","").replace("-","_"),"SomeName",e.XMin,e.YMin,e.XMax,e.YMax,CRS))
str_lst = ','.join(str(t) for t in tmp_lst)
outtxt.write(str_lst+"\n")
posted earlier today...works, but not as tidy:
out_lst = []
# list frames within mxd
for df in arcpy.mapping.ListDataFrames(mxd,"*"):
for bkmk in arcpy.mapping.ListBookmarks(mxd, "", df):
e = bkmk.extent
out_lst.append([bkmk.name.encode("utf-8"), e.XMin,e.YMin,e.XMax,e.YMax,df.rotation,df.scale])
with open(srcPath + "file.txt", "w") as output:
output.write(str(out_lst))