SaveToLayerFile_management() выдает ошибку 732, когда имя входного слоя содержит символ прямой косой черты
Мой код:
# 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)
Это зацикливает все имена слоев в загруженных данных. Работает нормально, пока не достигнет слоя, называемого "Наблюдаемый конвейер / кабель", и выдаст следующее сообщение:
ОШИБКА 000732: Входной уровень: набор данных. Наблюдаемый конвейер / кабель не существует или не поддерживается ". Не удалось выполнить (SaveToLayerFile)."
Думает ли, что косая черта является частью каталога (а это не так)? Что мне сделать, чтобы SaveToLayerFile() принял косую черту как часть имени слоя?
1 ответ
Должен сделать что-то с этим метасимволом. Вероятно, лучше заменить на подчеркивание, fc.replace('/','_') + '.lyr'
, Можно попытаться вставить обратную косую черту, чтобы избежать интерпретации этого символа, но это может стать грязным.