Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6384683
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T02:48:22+00:00 2026-05-25T02:48:22+00:00

I need to get the current directory in an os.walk process. It works when

  • 0

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…

[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()

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.

Thanks for your advise,

[Error Messages]

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”)
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).

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’

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T02:48:23+00:00Added an answer on May 25, 2026 at 2:48 am

    Thanks all, I used the input from the forum to complete the script. It’s below for anyone who wants it. best,

    # 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, arcpy, sys, datetime
    top = os.getcwd()
    RootOutput = top
    FileTypes=['shp']
    SearchStrings=['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 root, dirs, files in os.walk(top, topdown=False):
        for fl in files:
          currentFile=os.path.join(root, fl)
          for FileType in FileTypes:
              status= str.endswith(currentFile,FileType)
              if str(status) == 'True':
                  for SearchString in SearchStrings:
                      if str(SearchString in currentFile) == 'True':
                        #print str(currentFile)+str(status)       
                        filecount=filecount+1
                        list.append(currentFile)
    
    print 'Merging: ' + str(list)
    

    #Replace with any function you want to carry out on the generated list of files.
    #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()
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need a cross-platform way to get the current working directory (yes, getcwd does
I need to get the last part of current directory, for example from /Users/smcho/filegen_from_directory/AIRPassthrough
I need to get the location of the home directory of the current logged-on
I have an exchange rate table. I need to get current rate and previous
I need to get the current volume of the output to the sound card.
I need to get the current scrolling position of an UIScrollView. How could I
I'm using Delphi and need to get the current Windows DNS server IP address
How can I get current time (I need hours, minutes, seconds) crossplatform in c++?
I need to get the AST for the current selection in the java editor
I need to get a list of directories shared by the current computer, and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.