YYC. Interesting idea.
Although I didn't get to the capture part, I did make a few changes so at least you can print it out. Should be easier to work from this point on
import arcpy
from arcpy import env
import os
import csv
#ProjDir = r"C:\_beartest\ArcticWork"
ProjDir = r"D:\desktop\Project"
arcpy.env.workspace = ProjDir
arcpy.env.overwriteOutput = True
outFileCSV = os.path.join(ProjDir, "bkmrkOut") + ".csv"
csvFile = open(outFileCSV, "w")
csvFile.write("mxd, bmName, minX, minY, maxX, maxY \n")
for mxdname in arcpy.ListFiles("*.mxd"):
print mxdname
mxd = arcpy.mapping.MapDocument(arcpy.os.path.join(ProjDir, mxdname))
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
bookmarks = arcpy.mapping.ListBookmarks(mxd)
for bmName,bmExtent in bookmarks:
print("name): {0} extent: {1}".format(bmName, bmExtent))
minmax = str(bmExtent).split(" ")
print("xmin: {0}, ymin: {1}, xmax: {2}, ymax: {3}".format(minmax[0], minmax[1], minmax[2], minmax[3]))
csvFile.write("{0}, {1}, {2}, {3}, {4}, {5} \n".format(mxdname, bmName, minmax[0], minmax[1], minmax[2], minmax[3]))
#df.extent = bkmk.extent
#mxd.save()
#del mxd
csvFile.close()
print("outFile is closed: " + str(csvFile.closed))
EDITED: updated my code to write all the bookmarks (mxd name, bookmark name, xmin, ymin, xmax, ymax) to a .csv file. So, still not what you are trying to get at, but might be a helpful utility if trying to standardize bookmarks or read in to another mxd. Something I'll use.