3

何かをコーディングするのは初めてなので、これが簡単な修正であれば申し訳ありません。

マップをエクスポートすると、すべて問題なく、スクリプトによってテキストが完全に置き換えられます。ただし、マップ ドキュメントを手動で開いて視覚化すると、テキストは置換前と同じままです。テキストを置き換えずにそのフォルダーからマップの 1 つをエクスポートしたところ、テキストが置き換えられたことがわかります。何が起こっているのかわかりません。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 に答える