当输入图层名称包含正斜杠字符时,SaveToLayerFile_management()给出732错误

时间:2013-07-01 12:22:43

标签: python arcmap

我的代码:

#  Change Feature Classes to Relative Path Lyr files

import arcpy, csv, os
from arcpy import env

env.overwriteOutput = True

mxd = arcpy.mapping.MapDocument("CURRENT")
messageStr = str(mxd)
arcpy.AddMessage(messageStr)
arcpy.env.workspace = "C:\\GeneralWorkData\\ArcGIS Test Data\\Test Data From,to Martin B\\Relative_Paths_Lyr_Files"
for fc in arcpy.mapping.ListLayers(mxd):
  fc = str(fc)
  out_layer = fc + ".lyr"
  arcpy.SaveToLayerFile_management(fc,out_layer,"RELATIVE")
  messageStr = out_layer
  arcpy.AddMessage(messageStr)

循环遍历当前加载的数据中的所有图层名称。工作正常,直到它遇到称为“观察到的管道/电缆”的层,并给出以下消息:

  

ERROR 000732:输入层:数据集观察到的管道/电缆不存在或不受支持“。无法执行(SaveToLayerFile)。”

它是否认为正斜杠是目录的一部分(它不是)?如何使SaveToLayerFile()接受正斜杠作为图层名称的一部分?

1 个答案:

答案 0 :(得分:0)

要用这个元字符做点什么。可能最好用下划线替换fc.replace('/','_') + '.lyr'。可以尝试插入一个反斜杠来逃避对该角色的解释,但这可能会变得混乱。