繁体   English   中英

使用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 )当前工作目录,则此方法实际上可以工作。 但是,如果我输入其他任何内容,列表将返回空。 我试图解决这个问题,但每个代码段都按预期工作。

这是可以预期的,因为os.listdir仅返回文件/目录的名称 ,所以除非在当前目录中运行它,否则找不到对象。

您必须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))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM