求助,怎么运用Python脚本批量替换mxd文件中的文本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助,怎么运用Python脚本批量替换mxd文件中的文本?相关的知识,希望对你有一定的参考价值。

如题,求助,怎么运用Python脚本批量替换mxd文件中的文本?
好比多个mxd文件中都有个文本“2013年9月10日”,现在要改成“2012年12月10日”

import arcpy, string, os
#Read input parameters from script tool
Path = arcpy.GetParameterAsText(0)
oldText = arcpy.GetParameterAsText(1)
newText = arcpy.GetParameterAsText(2)
case = arcpy.GetParameter(3)
exact = arcpy.GetParameter(4)
outputMXD = arcpy.GetParameterAsText(5)
try:
    #Referent the map document
    mxd = arcpy.mapping.MapDocument(mxdPath)        
    #Find all page layout text elements
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):     
        if exact:
            if case:
                if oldText == elm.text:
                    elmText = elm.text.replace(oldText, newText)
                    elm.text = elmText
            else:
                if oldText.upper() == elm.text.upper():
                    elmText = elm.text.upper().replace(oldText, newText)
                    elm.text = elmText   
        else:
            if case:
                if oldText in elm.text:
                    elmText = elm.text.replace(oldText, newText)
                    elm.text = elmText
            else:
                if oldText.upper() in elm.text.upper():
                    elmText = elm.text.upper().replace(oldText, newText)
                    elm.text = elmText                  
    mxd.saveACopy(outputMXD)
    del mxd
except Exception, e:
    import traceback
    map(arcpy.AddError, traceback.format_exc().split("\\n"))
    arcpy.AddError(str(e))追问

你好,这段代码怎么运行呢,我还是个新手,能讲一下具体怎么使用吗?

参考技术A 这个,是在文件系统中寻找mxd文件。类似walk的函数
第二个,是针对每个文件,用正则表达式匹配。不过可能字符串编码也要注意。具体的你要调试了
参考技术B files = ['a.mxd', 'b.mxd']

def readit(fn):
    with open(fn) as f:
        return f.read()
        
def writeto(fn, s):
    with open(fn, 'w') as f:
        f.write(s)
        
for fn in files:
    writeto(fn, readit(fn).replace(“2013年9月10日”, “2012年12月10日”))

以上是关于求助,怎么运用Python脚本批量替换mxd文件中的文本?的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS超级工具1.6升级说明

关于arcgis的python脚本编程, shape文件出png图片问题

Python脚本批量给文件添加内容

arcgis python 把多个MXD批量导出一个PDF

如何批量导出JPG格式的图片?

Python作业求助