Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

In ArcGIS modelbuilder I want to check if a shapefiles exists, if not I want to create the shapefile in that folder. I guess the calculate value tool within ArcGIS modelbuilder can be used, but I need some python scripting to do the work. Any idea or python script examples? Thanks

share|improve this question
add comment

2 Answers 2

I think you want the arcpy.Exists function:

>>> import arcpy
>>> arcpy.env.workspace = r"D:\temp"
>>> if arcpy.Exists("Cameron.shp"):
...     print "Exists"
...
Exists
>>>
share|improve this answer
add comment

@Chad Chopper is right. You can also use ValidateTableName() function which can determine whether a specific name is valid and unique to a specific workspace.

The Exists() function can check to see whether the table name is unique for a given workspace.

The difference between ValidateTableName() and Exists() is that The ValidateTableName() function does not determine that the specified name is unique to the specified workspace. It only returns a valid table name for that workspace.

Example Code:

# Move all shapefiles from a folder into a geodatabase
#
import arcpy
from arcpy import env

# Set the workspace. List all of the shapefiles
#
env.workspace = "D:/St_Johns"
fcs = arcpy.ListFeatureClasses("*")

# Set the workspace to SDE for ValidateTableName
#
env.workspace = "Database Connections/Bluestar.sde"

# For each feature class name
#
for fc in fcs: 
    # Validate the output name so it is valid
    #
    outfc = arcpy.ValidateTableName(fc)

    # Copy the features from the workspace to a geodatabase
    #
    arcpy.CopyFeatures_management(fc, outfc)

you can get more info here...

i hope it helps you...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.