<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: delete field based on CXXXX in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247985#M19179</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here is a snippet of code that I use to build a list of fields to drop at 10.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create an empty list that will be populated with field names&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dropFieldNameList = [] &amp;nbsp;&amp;nbsp;&amp;nbsp; # Use ListFields to get a list of field objects &amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList = arcpy.ListFields(inTable)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fieldList: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print field.name.upper() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not field.required: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if field.name.upper().startswith('C'): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dropFieldNameList.append(field.name)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Execute DeleteField to delete all fields in the field list.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(inTable, dropFieldNameList) &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The test used to find the fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt; if field.name.upper().startswith('C'):&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;will drop &lt;/SPAN&gt;&lt;STRONG&gt;all&lt;/STRONG&gt;&lt;SPAN&gt; fields starting with C.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If there are other fields starting with C that you want to keep, then you need to adjust the test.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mark&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Jun 2013 00:53:30 GMT</pubDate>
    <dc:creator>MarkBryant</dc:creator>
    <dc:date>2013-06-28T00:53:30Z</dc:date>
    <item>
      <title>delete field based on CXXXX</title>
      <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247983#M19177</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;System: Windows Vista and ArcGIS 9.3&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have 100 shapefiles called geocXXXX.shp (geoc0782, geoc9838, and geoc6728 etc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In each shapefile, there is a field call CXXXX (C0782, C9838, and C6728 etc).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The field property is string, length =6.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, there are other fields called CXXXXMS and CXXXXMW (C0782MS and C0782MW).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The field property is long integer, length =9.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would like to delete the fields of CXXXX, CXXXXMS, and CXXXXMW at the same time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However, the following code did not work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Please kindly advise how to modify it and thank you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;#Import standard library modules import arcgisscripting import os&amp;nbsp; #Create the Geoprocessor object gp = arcgisscripting.create(9.3)&amp;nbsp; #Set the input workspace #GP.workspace = sys.argv[1] #Set the workspace. gp.Workspace= "H:/temp_D/test"&amp;nbsp; #Set the output workspace #outWorkspace = sys.argv[2] #Set the workspace. List all of the feature classes in the dataset outWorkspace= "H:/temp_D"&amp;nbsp;&amp;nbsp; #Get a list of the featureclasses in the input folder fcs = gp.ListFeatureClasses()&amp;nbsp; # Loop through every item in the list that was just generated for fc in fcs:&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # delete the field CXXXX &amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, "C*") &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddMessage(gp.GetMessages()) print gp.GetMessages()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Jun 2013 23:25:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247983#M19177</guid>
      <dc:creator>ElaineKuo</dc:creator>
      <dc:date>2013-06-27T23:25:05Z</dc:date>
    </item>
    <item>
      <title>Re: delete field based on CXXXX</title>
      <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247984#M19178</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
#Import standard library modules
import arcgisscripting
import os

#Create the Geoprocessor object
gp = arcgisscripting.create(9.3)

gp.toolbox = "management"

#Set the input workspace
#GP.workspace = sys.argv[1]
#Set the workspace.
gp.workspace= "H:/temp_D/test"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

#Set the output workspace
#outWorkspace = sys.argv[2]
#Set the workspace. List all of the feature classes in the dataset

#Get a list of the featureclasses in the input folder
fcs = gp.ListFeatureClasses()

# Loop through every item in the list that was just generated
for fc in fcs:
&amp;nbsp;&amp;nbsp;&amp;nbsp; fields = gp.ListFields(fc,"C*", "String")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if not field.endswith("D"): 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # delete the field CXXXX
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, field)&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; del field
&amp;nbsp;&amp;nbsp;&amp;nbsp; del fields

gp.AddMessage(gp.GetMessages())
print gp.GetMessages()
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Don't believe deletefield allows wildcards. This way I'm looping through the fields in the current FC and adding any that start with C to a list. Then, iterate through the list of Cfields and delete.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think that should do it for you. I don't have 9.3 anymore to test with.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, this will delete the CXXXXD fields if they still exist also (if these are the same datasets you are adding to in your other post)... Uncomment out the section in red if you don't want to delete the fields that end with D as well. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course, you could probably just add the deletefield option to your other script and delete the C* field right after the calculate (while the variable is still set to it).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;R_&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:14:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247984#M19178</guid>
      <dc:creator>RhettZufelt</dc:creator>
      <dc:date>2021-12-12T16:14:59Z</dc:date>
    </item>
    <item>
      <title>Re: delete field based on CXXXX</title>
      <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247985#M19179</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here is a snippet of code that I use to build a list of fields to drop at 10.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create an empty list that will be populated with field names&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dropFieldNameList = [] &amp;nbsp;&amp;nbsp;&amp;nbsp; # Use ListFields to get a list of field objects &amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList = arcpy.ListFields(inTable)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fieldList: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print field.name.upper() &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not field.required: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if field.name.upper().startswith('C'): &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dropFieldNameList.append(field.name)&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; # Execute DeleteField to delete all fields in the field list.&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(inTable, dropFieldNameList) &lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The test used to find the fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt; if field.name.upper().startswith('C'):&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;SPAN&gt;will drop &lt;/SPAN&gt;&lt;STRONG&gt;all&lt;/STRONG&gt;&lt;SPAN&gt; fields starting with C.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If there are other fields starting with C that you want to keep, then you need to adjust the test.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mark&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jun 2013 00:53:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247985#M19179</guid>
      <dc:creator>MarkBryant</dc:creator>
      <dc:date>2013-06-28T00:53:30Z</dc:date>
    </item>
    <item>
      <title>Re: delete field based on CXXXX</title>
      <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247986#M19180</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks to Harles's idea, I modified the code to delete multiple fields starting with C, using ArcGIS 9.3&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
#Import standard library modules
import arcgisscripting
import os

#Create the Geoprocessor object
gp = arcgisscripting.create(9.3)

#Set the input workspace
#GP.workspace = sys.argv[1]
#Set the workspace.
gp.Workspace= "H:/temp_D/test"

#Set the output workspace
#outWorkspace = sys.argv[2]
#Set the workspace. List all of the feature classes in the dataset
outWorkspace= "H:/temp_D"


#Get a list of the featureclasses in the input folder
fcs = gp.ListFeatureClasses()

# Loop through every item in the list that was just generated
for fc in fcs:

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the numeric code from the shapefile name
&amp;nbsp;&amp;nbsp;&amp;nbsp; numCode = fc[4:8]
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Build the field name
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldName1 = "C"+numCode+"MS"&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldName2 = "C"+numCode+"MW"

&amp;nbsp;&amp;nbsp;&amp;nbsp; # delete the field CXXXX
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, fieldName1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, fieldName2)

gp.AddMessage(gp.GetMessages())
print gp.GetMessages()
&lt;/PRE&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 12:20:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247986#M19180</guid>
      <dc:creator>ElaineKuo</dc:creator>
      <dc:date>2021-12-11T12:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: delete field based on CXXXX</title>
      <link>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247987#M19181</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Build the field name
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldName1 = "C"+numCode+"MS"&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldName2 = "C"+numCode+"MW"

&amp;nbsp;&amp;nbsp;&amp;nbsp; # delete the field CXXXX
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, fieldName1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.deletefield (fc, fieldName2)
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Elaine,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The DeleteField tool can take a list of field names either as a ";"-delimited string or a Python list:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
gp.DeleteField_management(fc, [fieldName1, fieldName2])&amp;nbsp; 
gp.DeleteField_management(fc, "{0};{1}".format(fieldName1, fieldName2))
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;By the way, I'd get in the habit of capitalizing tool names so you don't have to break the habit in 10.x when you get there.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 12:20:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/delete-field-based-on-cxxxx/m-p/247987#M19181</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-11T12:20:46Z</dc:date>
    </item>
  </channel>
</rss>

