首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何递归python中的两个目录,只需要目录名称?

如何递归python中的两个目录,只需要目录名称?
EN

Stack Overflow用户
提问于 2019-02-17 12:56:29
回答 1查看 26关注 0票数 1

我正在尝试将Johnny Decimal目录的目录映射自动化为R Markdown文档。我的Python脚本只返回顶级目录。我根本没有得到第二个级别的下降。

我试过使用"import pathlib“和"import os”。我进一步介绍了"import os“。

代码语言:javascript
运行
复制
import os

path = "c:\\local\\top"

print("# Johnny Decimal\r\n")

for d1 in filter(os.path.isdir, os.listdir(path)):
    path2 = path + "\\" + d1
    print("## " + d1 + "\r\n")
    for d2 in filter(os.path.isdir, os.listdir(path2)):
        print("### " + d2 + "\r\n")

我得到了:

代码语言:javascript
运行
复制
# Johnny Decimal

## 10

## 20

我期望得到:

代码语言:javascript
运行
复制
# Johnny Decimal

## 10

### 11

### 12

## 20

### 21

### 22
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-17 13:10:45

os.listdir只返回文件名而不返回路径名,但是os.path.isdir需要完整的路径名,因此在将其传递给os.path.isdir之前,您应该使用os.path.join将路径名与文件名连接起来

代码语言:javascript
运行
复制
for d1 in os.listdir(path):
    path2 = os.path.join(path, d)
    if os.path.isdir(path2):
        print("## " + d1 + "\r\n")
        for d2 in os.listdir(path2):
            if os.path.isdir(os.path.join(path2, d2)):
                print("### " + d2 + "\r\n")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54730228

复制
相关文章

相似问题

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