使用 os.listdir 仅显示目录
Use os.listdir to show directories only
如何通过 os.listdir
使 python 仅输出目录,同时通过 raw_input
指定要列出的目录?
我有:
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
现在,如果我输入(通过 raw_input
)当前工作目录,这实际上有效。但是,如果我输入任何其他内容,列表 returns 为空。我试图分而治之,但每个代码片段都按预期工作。
这是预期的,因为 os.listdir
只有 returns files/dirs 的 names,所以找不到对象,除非你运行 在当前目录下。
您必须 join
扫描目录以计算完整路径才能正常工作:
for filename in os.listdir(file_to_search):
if os.path.isdir(os.path.join(file_to_search,filename)):
dirlist.append(filename)
注意列表理解版本:
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]
如何通过 os.listdir
使 python 仅输出目录,同时通过 raw_input
指定要列出的目录?
我有:
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
现在,如果我输入(通过 raw_input
)当前工作目录,这实际上有效。但是,如果我输入任何其他内容,列表 returns 为空。我试图分而治之,但每个代码片段都按预期工作。
这是预期的,因为 os.listdir
只有 returns files/dirs 的 names,所以找不到对象,除非你运行 在当前目录下。
您必须 join
扫描目录以计算完整路径才能正常工作:
for filename in os.listdir(file_to_search):
if os.path.isdir(os.path.join(file_to_search,filename)):
dirlist.append(filename)
注意列表理解版本:
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]