2012-11-20 5 views
3

쉬운 수정 인 경우 매우 미안합니다.mxd.save 이후에 문서를 열면 내보내기 중에 바뀌 었음에도 불구하고 텍스트가 동일합니다.

내지도를 내보낼 때 모든 것이 잘되고 스크립트가 텍스트를 완벽하게 바꿉니다. 그러나 맵 문서를 시각화하기 위해 수동으로 열면 텍스트를 바꾼 직전과 같습니다. 텍스트를 대체하지 않고 해당 폴더에서지도 중 하나를 내 보낸 경우에도 텍스트가 대체되었음을 알 수 있습니다. 나는 무슨 일이 일어나고 있는지 잘 모르겠습니다. 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 문서를 다른 폴더로 내보내는 방법을 잘 모르겠습니다. 나는 그 점에 대해서도 도움을 주신 것에 대해 감사 할 것입니다.

+1

나는 설명 텍스트 요소로 테스트 MXD을 만들어 여기에 스크립트를 시도했다. 완벽하게 작동하고, mxd의 요소를 변경했습니다. Arcmap에서 mxd를 열어 우연히 이것을 할 수 있습니까? – MikeHunter

+1

이 스크립트를 어떻게 실행하고 있습니까? Idle에서, Pythonwin? Arcmap Python 창? – MikeHunter

답변

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 제품은 때로는 이상한 일을하며 코드 조각이 한 시스템에서 작동하고 다른 코드에서 실패하는 경우는 드문 일이 아닙니다. 귀하의 코드는 제게 잘 보이고 제 테스트에서 기대 한대로 작동합니다.

행운,

마이크

+0

정말 늦은 마이크를 되 돌리게되어 죄송합니다. 빠른 응답을 보내 주셔서 감사합니다. 컴퓨터를 다시 시작하겠습니다. 빈 Arcmap 템플릿에서 Arcmap Python Window로 실행 중입니다. 이 코드는 훌륭하게 작동하는 것으로 보이지만 어떤 이유 때문에 문서가 새 텍스트로 저장되었다는 것을 시각적으로 표시하지는 않습니다. –

+0

이것에 대한 업데이트. 각 arcmap 문서를 열어 모든 텍스트를 수동으로 변경해야했습니다. 우리는 방금 10.1로 업그레이드했고 당신이 말했듯이 완벽하게 작동했습니다. 그것은 매우 실망 스러웠습니다. –