In this code i try to add layer files- only if the first character in the name file, is a numbers to a MXD file, but an error happened:
import os,sys,fnmatch,shutil,arcpy
rootPath = r"G:\desktop\Project\lyr\taba\7650"
mxd = arcpy.mapping.MapDocument(r"G:\desktop\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
for root, dirs, filenames in os.walk(rootPath):
for d in dirs:
DIR = os.path.join(root,d)
lyr_files = fnmatch.filter(os.listdir(DIR), '*.lyr')
for i in lyr_files:
if i[0].isdigit():
addLayer = arcpy.mapping.Layer(i)
arcpy.mapping.AddLayer(df, addLayer, "BOTTOM")
mxd.save()
UPTADE: I fix the code according to Hornbydd and still got the same error:
for i in lyr_files:
if i[0].isdigit():
addLayer = arcpy.mapping.AddLayer(df, arcpy.mapping.Layer(os.path.join(root, i)))
arcpy.mapping.AddLayer(df, addLayer, "BOTTOM")
mxd.save()
this is the error:
Traceback (most recent call last):
File "G:\desktop\abc.py", line 68, in <module>
addLayer = arcpy.mapping.Layer(i)
File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\arcobjects\mixins.py", line 389, in __init__
super(LayerMixin, self).__init__(lyrfile)
File "C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy\arcpy\arcobjects\_base.py", line 47, in __init__
for arg in args))
ValueError: Object: CreateObject Layer invalid data source
>>>