3

如果这是一个简单的解决方案,我对编码任何东西都很抱歉。

当我导出我的地图时,一切都很好,我的脚本完美地替换了文本。但是,当我手动打开地图文档以将其可视化时,文本仍然与替换之前相同。我什至从该文件夹中导出了一张地图而不替换文本,它显示文本已被替换。我不确定发生了什么事。在 mxd.save() 之前,我也使用了 arcpy.RefreshActiveView,但它仍然无法正常工作。任何帮助,将不胜感激。

import arcpy 
import os
import glob
folder = r"C:\Workspace\MapTest"
oldtext = '7351'
newtext = '7352'
mxds = glob.glob(folder + '\\' + '*.mxd')
arcpy.gp.overwriteOutput = True
for mxdFile in mxds:
    mxd = arcpy.mapping.MapDocument(mxdFile)
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
        if elm.text ==oldtext:
            elm.text = newtext          
    eps = mxdFile.replace('mxd', 'eps')
    arcpy.mapping.ExportToEPS(mxd,eps)
    mxd.save()
del mxd

另外,我不确定如何将我的 eps 文档导出到另一个文件夹中。我也将不胜感激。

4

1 回答 1

1

好吧,我无法解决 mxd 保存问题——您的脚本非常适合我。要将 eps 保存到另一个文件夹,请执行以下操作:

bn = os.path.basename(mxdFile)[:-3]
eps = os.path.join('C:\\temp', bn + 'eps')
arcpy.mapping.ExportToEPS(mxd, eps)
mxd.save() 

对不起,我不能帮助储蓄业务。ESRI 产品有时会做一些奇怪的事情,一段代码在一台机器上运行而在另一台机器上失败的情况并不少见。你的代码对我来说看起来很好,并且在我的测试中做了它应该做的事情。

祝你好运,

麦克风

于 2012-11-20T23:45:09.530 回答