Hi,
At the end off part 1 i am able to search folders and Gdb's for featureclasses. for the next part i want to rename a feature in the "feature_class" list.so far i have this:
import os
import arcpy
workspace = "D:\GIS\Zone1\Zone1A"
datatypes = "FeatureClass"
arcpy.env.overwriteOutput = True
def inventory_data(workspace, datatypes):
for path, path_names, data_names in arcpy.da.Walk(
workspace, datatype=datatypes, type="Polygon"):
for data_name in data_names:
yield os.path.join(path, data_name)
for feature_class in inventory_data(workspace, "FeatureClass"):
print feature_class
if feature_class == "RenameTest":
arcpy.Rename_management("RenameTes2", "RenameTest2")
print feature_classcan sameone point to me were i am going wrong.
thank you and greetings Peter
Solved! Go to Solution.
It is not necessary to create a double loop, but to provide a sample that does not have that much changed see the script below.
import arcpy
import os
workspace = "D:\GIS\ZOne1\Zone1A"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
dct = {'featureclassName': 'featureclassName_renameTest',
'featureclassName1': 'featureclassName1_renameTest',
'another input name': 'corresponding output name'}
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))
for fc in feature_classes:
fc_ws, fc_name = os.path.split(fc)
if fc_name in dct:
arcpy.Rename_management(fc, os.path.join(fc_ws, dct[fc_name]))
Can you be more specific about what's "going wrong" - what's your problem, do you get any error messages, etc...?
The 2nd example in the Help is quite useful.
yes it is but my input for the rename is in a list. the search is ok i got the right list but the rename is not working. i do not have a error
Hi
I am not sure the function return any list that can be used by the for statement.
Check the examples here: http://resources.arcgis.com/en/help/main/10.2/002z/002z00000011000000.htm
The last few examples are very close to what you need.
Have fun
Mody
My first script got me the featureclasses with there path, this is not what i want for my rename. now i got this:
import arcpy
import os
workspace = "D:\GIS\ZOne1\Zone1A"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))
print filename
for fc in filename:
if fc == "featureclassName":
arcpy.Rename_management("featureclassName", "featureclassName_renameTest")
elif fc == "feature
elif fc == "featureclassName1":
arcpy.Rename_management("featureclassName1", "featureclassName1_renameTest")
(sorry samehow i cannot add more line to the script)
the print on line 13 gives me a list of all featureclasses i want to rename. but my rename is not working i do not get a error
greetings Peter
looking at this i think i know what wrong but i do not know how to solve it.
the Rename_management in my script do's not know from what .gdb the feature name i use is from.
greetings Peter
It is not necessary to create a double loop, but to provide a sample that does not have that much changed see the script below.
import arcpy
import os
workspace = "D:\GIS\ZOne1\Zone1A"
feature_classes = []
walk = arcpy.da.Walk(workspace, datatype="FeatureClass", type="Polygon")
dct = {'featureclassName': 'featureclassName_renameTest',
'featureclassName1': 'featureclassName1_renameTest',
'another input name': 'corresponding output name'}
for dirpath, dirnames, filenames in walk:
for filename in filenames:
feature_classes.append(os.path.join(dirpath, filename))
for fc in feature_classes:
fc_ws, fc_name = os.path.split(fc)
if fc_name in dct:
arcpy.Rename_management(fc, os.path.join(fc_ws, dct[fc_name]))
I am trying to learn arcpy (python) and was looking for a project i can use at work. Perhaps this was a bit to much for now but i am analyzing your script and reading about the parts i do not understand yet.
The script works great and i even understand 80% off the code.
Greetings Peter