title: Python: Current directory in an os.walk
body: <p>I need to get the current directory in an os.walk process. It works when there is just one subdirectory level but fails when there's more. Please advise...</p>
  
  <p>[CODE]</p>
  
  <pre><code># AFFECTS everything reachable from the directory named in "top",
  # assuming there are no symbolic links.
  # CAUTION:  This is dangerous!  For example, if top == '/', it
  # could affect all your disk files.
  
  import os, glob, arcpy, csv, sys, shutil, datetime
  top = r'L:\Raster_Data\Topographic_Maps'
  RootOutput = r'L:\Raster_Data\Topographic_Maps'
  #FileList = csv.reader(open('FileList.csv'))
  SearchString=['Temp_Pol', 'Spatial_Ex']
  
  filecount=0
  successcount=0
  errorcount=0
  
  print "Working in: "+os.getcwd()
  
  list =[]
  f = open(RootOutput+'\\Success_LOG.txt', 'a')
  f.write("Log of files Succesfully processed. RESULT of process run @:"+str(datetime.datetime.now())+"\n")
  f.close()
  
  #for File in FileList:
  for root, dirs, files in os.walk(top, topdown=False):
    #for directory in dirs:
      for file in files:
        #currentPath=os.path.join(root,directory)
        currentPath=os.path.abspath(file)
        os.chdir(currentPath)
        #arcpy.env.workspace = currentPath
        #print os.getcwd()
        lstFCs = glob.glob('*'+SearchString[0]+'*.shp')
        #print lstFCs
        OutPutDir=os.path.abspath(currentPath)
        for fc in lstFCs:
            filecount=filecount+1
            list.append(OutPutDir+"\\"+fc)       
  
        lstFCs = glob.glob('*'+SearchString[1]+'*.shp')
        #print lstFCs
        for fc in lstFCs:
            OutPutDir=RootOutput+"\\"+directory
            filecount=filecount+1
            list.append(OutPutDir+"\\"+fc)
  
  print 'Merging: ' + str(list)
  #arcpy.Merge_management(list, RootOutput+"\\Full_Extent.shp")
  print 'Created: '+RootOutput+"\\Full_Extent.shp"
  f = open(RootOutput+'\\Success_LOG.txt', 'a')
  f.write(str(list)+"\n\n Merged to: "+RootOutput+"\\Full_Extent.shp")
  f.close()
  </code></pre>
  
  <p>so the list should be appended with the fc and the full path to it but just gets the root path and the final part of the path -not the directories in between.</p>
  
  <p>Thanks for your advise,</p>
  
  <p>[Error Messages]</p>
  
  <blockquote>
    <blockquote>
      <blockquote>
        <blockquote>
          <p>Working in: L:\Raster_Data\Topographic_Maps Merging:
          ['L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\ecw\prj_Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\ecw\Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\ecw\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SC54\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SC55\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SD54\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SD55\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SE54\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\prj_Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\SE55\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SF54\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SF55\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SF56\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SG55\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SG56\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\SH56\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\Tablelands_100K\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\200DPI\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\1M\prj_Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\1M\Temp_Polygon_Extent_0.shp',
          'L:\Raster_Data\Topographic_Maps\250K\prj_Temp_Polygon_Extent_1.shp',
          'L:\Raster_Data\Topographic_Maps\250K\Temp_Polygon_Extent_1.shp',
          'L:\Raster_Data\Topographic_Maps\250K\Spatial_Extent.shp',
          'L:\Raster_Data\Topographic_Maps\5M\prj_Temp_Polygon_Extent_2.shp',
          'L:\Raster_Data\Topographic_Maps\5M\Temp_Polygon_Extent_2.shp',
          'L:\Raster_Data\Topographic_Maps\5M\Spatial_Extent.shp'] Traceback
          (most recent call last):   File
          "L:\Raster_Data\Topographic_Maps\CreateFileList.py", line 64, in
          
              arcpy.Merge_management(list, RootOutput+"\Full_Extent.shp")<br>
          File "C:\Program Files\ArcGIS\Desktop10.0\arcpy\arcpy\management.py",
          line 3124, in Merge
              raise e ExecuteError: Failed to execute. Parameters are not valid.
          ERROR 000732: Input Datasets: Dataset
          L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\ecw\prj_Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\ecw\Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\ecw\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SC54\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SC55\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SD54\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SD55\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SE54\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\prj_Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\100K\2010_100K\Map_Sheets_BestResolution\qld_north\SE55\Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\SE55\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SF54\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SF55\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SF56\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SG55\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SG56\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\SH56\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\Tablelands_100K\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\200DPI\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\1M\prj_Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\1M\Temp_Polygon_Extent_0.shp;L:\Raster_Data\Topographic_Maps\250K\prj_Temp_Polygon_Extent_1.shp;L:\Raster_Data\Topographic_Maps\250K\Temp_Polygon_Extent_1.shp;L:\Raster_Data\Topographic_Maps\250K\Spatial_Extent.shp;L:\Raster_Data\Topographic_Maps\5M\prj_Temp_Polygon_Extent_2.shp;L:\Raster_Data\Topographic_Maps\5M\Temp_Polygon_Extent_2.shp;L:\Raster_Data\Topographic_Maps\5M\Spatial_Extent.shp
          does not exist or is not supported Failed to execute (Merge).</p>
          
          <p>Working in: L:\Raster_Data\Topographic_Maps Traceback (most
          recent call last):   File
          "L:\Raster_Data\Topographic_Maps\CreateFileList.py", line 28, in
          
              os.chdir(currentPath) WindowsError: [Error 2] The system cannot
          find the file specified:
          'L:\Raster_Data\Topographic_Maps\ecw\SC54'
          directory 'SC54'
          dirs ['SC54', 'SC55', 'SD54', 'SD55', 'SE54', 'SE55']
          os.path.abspath(dirs[0])
          'L:\Raster_Data\Topographic_Maps\ecw\SC54'
          os.getcwd() 'L:\Raster_Data\Topographic_Maps\ecw'
           Working in: L:\Raster_Data\Topographic_Maps Traceback (most
          recent call last):   File
          "L:\Raster_Data\Topographic_Maps\CreateFileList.py", line 28, in
          
              os.chdir(currentPath) WindowsError: [Error 2] The system cannot
          find the file specified:
          'L:\Raster_Data\Topographic_Maps\7178cp_dd.ers'
          file '7178cp_dd.ers'
          os.path.abspath 
          os.path.abspath(file)
          'L:\Raster_Data\Topographic_Maps\7178cp_dd.ers'</p>
        </blockquote>
      </blockquote>
    </blockquote>
  </blockquote>