Hello,
I would like to understand why sometimes arcpy.Exists() return True sometime False depending how I write the path of the featureClass.
I have two databases with both a copy of the same featureClass
In database1, the featureClass Archives.DBO.Data1 is in the dataset Archives.DBO.Dataset1
In database2 the featureClass PROD.SDE.Data1 is in the dataset PROD.SDE.Dataset1
With arcpy, if I only keep the short names of the dataset and featureClass in the path arcpy.Exists() return True for database1 but False for database2:
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">,</SPAN> os
FC_DB1 <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>r<SPAN class="string token">"C:\\"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Connexion"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Database1.sde"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Dataset1"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Data1"</SPAN><SPAN class="punctuation token">)</SPAN>
FC_DB2 <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>r<SPAN class="string token">"C:\\"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Connexion"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Database2.sde"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Dataset1"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Data1"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>Exists<SPAN class="punctuation token">(</SPAN>FC_DB1<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#return True</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>Exist<SPAN class="punctuation token">(</SPAN>FC_DB2<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#return False</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
If I write the full dataset and featureClass with database2, arcpy.Exist() return True
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">,</SPAN> os
FC_DB2 <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>r<SPAN class="string token">"C:\\"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Connexion"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Database2.sde"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PROD.SDE.Dataset1"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"PROD.SDE.Data1"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>Exist<SPAN class="punctuation token">(</SPAN>FC_DB2<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#return True</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Why writing the short dataset and featureClass works for the database1 but not for the database2?