我的代码:
# 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()接受正斜杠作为图层名称的一部分?
答案 0 :(得分:0)
要用这个元字符做点什么。可能最好用下划线替换fc.replace('/','_') + '.lyr'
。可以尝试插入一个反斜杠来逃避对该角色的解释,但这可能会变得混乱。