首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用os.listdir仅显示目录

使用os.listdir仅显示目录
EN

Stack Overflow用户
提问于 2017-08-25 05:11:20
回答 1查看 10.5K关注 0票数 9

如何在通过raw_input指定要列出的目录的同时,通过os.listdir将python仅带到输出目录

我所拥有的:

代码语言:javascript
运行
复制
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)当前工作目录,这实际上是有效的。但是,如果我放入其他内容,列表将返回空。我试图分散和克服这个问题,但每个代码片段都能按预期工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 05:15:39

这是意料之中的,因为os.listdir只返回文件/目录的名称,所以找不到对象,除非您在当前目录中运行它。

您必须对扫描的目录执行join操作,以计算其工作所需的完整路径:

代码语言:javascript
运行
复制
for filename in os.listdir(file_to_search):
    if os.path.isdir(os.path.join(file_to_search,filename)):
        dirlist.append(filename)

请注意列表理解版本:

代码语言:javascript
运行
复制
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45870945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档