["python","list","directory","operating-system"]
List Directories and get the name of the Directory

I am trying to get the code to list all the directories in a folder, change directory into that folder and get the name of the current folder. The code I have so far is below and isn't working at the minute. I seem to be getting the parent folder name. import os for directories in os.listdir(os.getcwd()): dir = os.path.join('/home/user/workspace', directories) os.chdir(dir) current = os.path.dirname(dir) new = str(current).split("-")[0] print new I also have other files in the folder but I do not want to list them. I have tried the below code but I haven't got it working yet either. for directories in os.path.isdir(os.listdir(os.getcwd())): Can anyone see where I am going wrong? Thanks Got it working but it seems a bit round about. import os os.chdir('/home/user/workspace') all_subdirs = [d for d in os.listdir('.') if os.path.isdir(d)] for dirs in all_subdirs: dir = os.path.join('/home/user/workspace', dirs) os.chdir(dir) current = os.getcwd() new = str(current).split("/")[4] print new
This will print all the subdirectories of the current directory: print ([name for name in os.listdir(".") if os.path.isdir(name)]) I'm not sure what you're doing with split("-"), but perhaps this code will help you find a solution? If you want the full pathnames of the directories, use abspath: print ([os.path.abspath(name) for name in os.listdir(".") if os.path.isdir(name)]) # needs outside parenthesis Note that these pieces of code will only get the immediate subdirectories. If you want sub-sub-directories and so on, you should use walk as others have suggested.