Use os.listdir to show directories only
11,166
that's expected, since os.listdir
only returns the names of the files/dirs, so objects are not found, unless you're running it in the current directory.
You have to join
to scanned directory to compute the full path for it to work:
for filename in os.listdir(file_to_search):
if os.path.isdir(os.path.join(file_to_search,filename)):
dirlist.append(filename)
note the list comprehension version:
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]
Related videos on Youtube
Author by
Felix
Updated on July 09, 2022Comments
-
Felix almost 2 years
How can I bring python to only output directories via
os.listdir
, while specifying which directory to list viaraw_input
?What I have:
file_to_search = raw_input("which file to search?\n>") dirlist=[] for filename in os.listdir(file_to_search): if os.path.isdir(filename) == True: dirlist.append(filename) print dirlist
Now this actually works if I input (via
raw_input
) the current working directory. However, if I put in anything else, the list returns empty. I tried to divide and conquer this problem but individually every code piece works as intended.