打印出整个目录树

2023-12-09

我现在拥有的代码:

import os

Tree = {}
Tree = os.listdir('Dir')
>>> print(Tree)
['New Folder', 'Textfile1.txt', 'Textfile2.txt']

这不会打印出子目录中的文件。 (新建文件夹是一个子目录)。

我的问题是,如何输出目录下的所有文件以及子目录下的文件?


import os 
def Test1(rootDir): 
    list_dirs = os.walk(rootDir) 
    for root, dirs, files in list_dirs: 
        for d in dirs: 
            print os.path.join(root, d)      
        for f in files: 
            print os.path.join(root, f) 

OR:

import os 
def Test2(rootDir): 
    for lists in os.listdir(rootDir): 
        path = os.path.join(rootDir, lists) 
        print path 
        if os.path.isdir(path): 
            Test2(path)

对于测试文件树:

E:\TEST 
│--A 
│  │--A-A 
│  │  │--A-A-A.txt 
│  │--A-B.txt 
│  │--A-C 
│  │  │--A-B-A.txt 
│  │--A-D.txt 
│--B.txt 
│--C 
│  │--C-A.txt 
│  │--C-B.txt 
│--D.txt 
│--E 

运行以下代码:

Test1('E:\TEST') 
print '=======================================' 
Test2('E:\TEST') 

您可以看到结果之间存在差异:

>>>  
E:\TEST\A 
E:\TEST\C 
E:\TEST\E 
E:\TEST\B.txt 
E:\TEST\D.txt 
E:\TEST\A\A-A 
E:\TEST\A\A-C 
E:\TEST\A\A-B.txt 
E:\TEST\A\A-D.txt 
E:\TEST\A\A-A\A-A-A.txt 
E:\TEST\A\A-C\A-B-A.txt 
E:\TEST\C\C-A.txt 
E:\TEST\C\C-B.txt 
======================================= 
E:\TEST\A 
E:\TEST\A\A-A 
E:\TEST\A\A-A\A-A-A.txt 
E:\TEST\A\A-B.txt 
E:\TEST\A\A-C 
E:\TEST\A\A-C\A-B-A.txt 
E:\TEST\A\A-D.txt 
E:\TEST\B.txt 
E:\TEST\C 
E:\TEST\C\C-A.txt 
E:\TEST\C\C-B.txt 
E:\TEST\D.txt 
E:\TEST\E 
>>> 

要将它们保存在列表中:

import os 
files = []
def Test1(rootDir):
    files.append(rootDir)
    list_dirs = os.walk(rootDir) 
    for root, dirs, files in list_dirs: 
        for d in dirs: 
            files.append(os.path.join(root, d))      
        for f in files: 
            files.append(os.path.join(root, f))

import os 
files = [rootDir]
def Test2(rootDir):
    for lists in os.listdir(rootDir): 
        path = os.path.join(rootDir, lists) 
        files.append(path) 
        if os.path.isdir(path): 
            Test2(path)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印出整个目录树 的相关文章

  • 设置ntlk代理

    我正在关注第一章NLTK书 http www nltk org book ch01 html frequency distributions 它要求我们通过运行来安装图书语料库nltk dowwnload 我正进入 状态getattrinf
  • 如何在 pywebview 中使无框窗口可拖动?

    我最近一直在使用 pywebview 和 Flask 来开发桌面应用程序 我想使用无框窗口功能并创建自己的标题栏 但问题是我不知道如何使该无框窗口可拖动 文档说它可以通过拖动任何点来移动 但对我来说情况并非如此 有任何想法吗 拖动区域 ht
  • 从 C# 运行多个 python 脚本

    我希望有人能够在这里帮助我 我对 C 比较陌生 正在尝试执行我在 C winform 应用程序中编写的一些 Python 代码 我想做的是从 winform 中的文本框中输入名称 并让它通过 python 脚本进行处理 并在 winform
  • \resize.cpp:3787: 错误: (-215:断言失败) func != 0 函数 'cv::hal::resize'

    我正在使用 opencv 调整大小函数调整一维数组的大小 但这给了我以下错误 resize cpp 3787 error 215 Assertion failed func 0 in function cv hal resize array
  • RuntimeError:期望后端 CUDA 对象,但获得后端 CPU 作为参数:ret = torch.addmm(torch.jit._unwrap_Optional(bias), input, Weight.t())

    当 的时候forward我的神经网络的功能 训练阶段完成后 正在执行 我正在经历RuntimeError Expected object of backend CUDA but got backend CPU for argument 4
  • 如何在Windows上安装PyGI(Python Gobject Introspection)?

    安装Python解释器 http python org ftp python 2 7 2 python 2 7 2 msi http python org ftp python 2 7 2 python 2 7 2 msi and http
  • 传递到 Flask 的可能路线列表?

    我正在学习 Flask 有一个关于动态路由的问题 是否可以传入接受的路由列表 我注意到any转换器具有潜力 但很难找到使用中的示例 基本上我有不同的端点组 它们应该在它们之间触发相同的操作 这就是我的意思 cities New York L
  • 如何使用判别函数绘制 3 个类别之间的决策边界

    我有 3 个判别函数 将 2D 空间划分为 3 个区域 我想绘制这些区域之间的决策边界 我不知道如何在 python 中使用 matplotlib meshgrid 来做到这一点 对于2个判别函数 过程很简单 我计算值为 0 的函数和等高线
  • 使用多处理或线程加速单个任务

    是否可以使用多处理 线程来加速单个任务 我的直觉是答案是否定的 以下是我所说的 单一任务 的示例 for i in range max pick random choice on off both 当参数为 10000000 时 在我的系统
  • 导入pygame时出错

    我已经使用以下命令通过 Anaconda 安装了 pygame conda install channel https conda anaconda org kne pygame 然后我尝试导入 pygame 并收到以下错误 Traceba
  • PyCharm 中的进程已完成,退出代码为 137

    当我在 PyCharm 中手动停止脚本时 进程以退出代码 137 结束 但我没有停止脚本 仍然得到退出代码 137 有什么问题吗 Python版本是3 6 运行xgboost train 方法时处理完成 退出代码 137 意味着您的进程被
  • scikit learn中partial_fit遇到的错误

    在 scikit learn 中使用partial fit 函数进行训练时 即使训练后的模型行为正确并给出正确的输出 我也会在程序未终止的情况下收到以下错误 这怎么可能 以及这样做的后果是什么 这是值得担心的事情吗 usr lib pyth
  • 以另一种风格制作一个带有形状和偏移参数的 numpy 数组

    我想以 3 元素实体 3d 位置 和单个元素 每个 x y z 坐标 的形式访问我的数组 经过一番研究后 我最终做了以下事情 gt gt gt import numpy as np gt gt gt arr np zeros 5 dtype
  • 从周数获取日期

    请问我的代码有什么问题 import datetime d 2013 W26 r datetime datetime strptime d Y W W print r 显示 2013 01 01 00 00 00 谢谢 周数不足以生成日期
  • 如何在python中查找文件的mime类型?

    假设您想要将一堆文件保存在某个地方 例如保存在 BLOB 中 假设您想通过网页分发这些文件 并让客户端自动打开正确的应用程序 查看器 假设 浏览器通过 HTTP 响应中的 mime type 内容类型 标头确定要使用哪个应用程序 查看器 基
  • 使用 Fabric 检查路径是否存在

    我正在运行此代码来检查此目录是否存在于远程计算机上 但此代码正在检查本地计算机上的目录 如何验证远程计算机上的目录 rom fabric api import run sudo env import os env hosts remote
  • 如何使 Selenium WebDriver 不等待整个页面加载

    我正在使用 python 2 7 和 Selenium webdriver for Firefox 我有一个无法解决或在互联网上找到解决方案的问题 我的任务是打开大约 10k 个网页 adsl 路由器 Web 界面 通过 IP 地址 并上传
  • python中1+1可以等于3吗? [复制]

    这个问题在这里已经有答案了 在继续之前 我知道人们应该never做这个 这个问题纯粹是出于教育目的 我进行这个练习是为了更好地理解 python 的内部结构ctypes 以及它们如何工作 我知道在 python 中更改整数的值相对容易 其实
  • PySpark 将模型预测与未转换的数据对齐:最佳实践

    使用 PySpark 的 ML 模块 经常会发生以下步骤 在数据清理之后等 执行特征和目标转换管道 创建模型 从模型生成预测 将预测和原始数据集合并在一起 供业务用户和模型验证之用 摘取一段精简的代码片段 predictions model
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发

随机推荐

  • 如何使 Perl 的 XML::Libxml 序列化器使用 utf-8 编码?

    我想使用 XML LibXML 序列化 xml 但它总是将 utf 8 字符转换为 html 表示形式 我得到 源自 等 我怎样才能让它使用utf 8呢 use strict use XML LibXML use utf8 my str
  • 获取 AJAX 请求持续时间[重复]

    这个问题在这里已经有答案了 我想使用 jquery 获取某个 ajax 请求的持续时间 例如我正在使用这个脚本 ajax type GET url http localhost thescript php success function
  • 用逗号分隔数字以表示千位 asp.net

    如何在asp net gridview上用逗号分隔每一千个数字 后面有c 我一直在后端尝试以下几行 单独 没有任何效果 它们只是截掉小数位 row Applied Amount Varience Sum string Format 0 0
  • 调整浏览器大小后如何获取画布的宽度和高度

    我想获得响应式画布的宽度和高度 我在一个页面上有 5 个画布元素 在绘图之前使用 Javascript 我想知道画布的高度和宽度 以便能够以正确的尺寸绘制图像 HTML 代码 div div class all div div
  • C# - ObjectContext 实例已被释放,不能再用于需要连接的操作

    我很抱歉重复了 我正以同样的方式前进problem 但还是没能处理好 我正在使用 Angularjs 框架和 Asp net mvc 我的人课 public partial class Person public int PersonID
  • 如何修复raspbian上mysql中的“未知变量datadir”错误?

    我想保护 USB 记忆棒上的数据库 而不是我的 Raspberry Pi 首先我做了 mysql服务停止 mkdir media pi EMTEC mysql 纳米 etc mysql my cnf 并更改 datadir media pi
  • 一个有趣的删除和析构函数案例 (C++)

    我有一段代码 可以多次调用析构函数并访问成员函数 即使调用析构函数时保留了成员变量的值 调用后我仍然能够访问成员函数delete但成员变量被无效 全部为0 而且我不能加倍delete 请解释一下 include
  • 无法看到 DLL 中的类

    我创建了一个 DLL 来容纳我想要在多个应用程序中使用的类 以及 LINQ 创建的 DBML 我遇到的问题是 当编译的 DLL 设置为引用时 该类在外部应用程序中不可见 不可用 尽管所有 LINQ 对象都是如此 另外 当我手动导入 cs 文
  • 使用 cntk 训练模型和 python

    我已经使用 CNTK 训练了一个模型 让我们调用 simple dnn 现在在测试阶段我不想在 Windows 上安装 CNTK 而是使用经过 Python 训练的模型 如何使用经过训练的模型 权重 来使用 python 进行测试 您可以使
  • Boost Log 清除日志文件

    我一直在尝试 C 的 Boost Log 库 我的问题是每次程序启动时 日志文件都会被清除 有没有附加选项之类的 这是我的代码的一部分 BOOST LOG INLINE GLOBAL LOGGER DEFAULT my logger src
  • 使用 VB 脚本对字符串和数字进行排序

    如何使用 VB 脚本对带有数值的字符串进行排序 以下是表中每一行的字符串 12 月 2 日测试 1 通过 测试 3 失败 测试 2 于 6 月 4 日通过 已验证 测试10通过 用户已接受 我想在排序后按以下顺序 自然顺序 12 月 2 日
  • Cellfun 与简单 Matlab 循环性能对比

    当我不久前在大学开始使用 matlab 时 如果我的主管看到任何不必要的 for 循环 他就会杀了我 他会要求将其交换为kron或任何可能的索引操作类型 后来 我试图尽可能避免 matlab 上的任何循环 寻找最黑暗的 matlab 编码方
  • 使用 matplotlib.tri.Triangulation 创建在 Matplotlib 的plot_trisurf 中使用的三角剖分

    我是一个尝试使用matplotlib tri Triangulation为 matplotlibs 生成三角形plot trisurf 我想指定三角形而不是让 Delaunay 三角剖分matplotlib tri Triangulatio
  • MySQL 选择特定列

    我是 PHP 新手 我想知道如何从一行中选择特定列 例如 如果我想显示 Joe Bugly 的名字 其中 ID 名字 姓氏和电子邮件都是列 Assuming that you don t want all columns that woul
  • PHP 将 15 分钟添加到时间值

    我有一个接收时间值的表单 selectedTime REQUEST time 时间格式如下 9 15 00 即上午 9 15 然后我需要添加 15 分钟并将其存储在一个单独的变量中 但我被难住了 我尝试使用 strtotime 但没有成功
  • 打开 Apple 地图进行导航并设置目的地名称

    我正在从 Google 的 Places API 获取位置数据 如下面使用的坐标 当从我的应用程序链接到 Apple 地图进行导航时 我当前正在使用 https maps apple com daddr latitude longitude
  • 如何将孙视图渲染到与第一个子视图相同的路由器出口中?

    这是对此的后续问题 Angular 2 辅助路由在 2 1 0 中如何工作 我也尝试过查看这个 但它并没有真正阐明这个问题 如何将子路由渲染到父级的路由出口 如果我有一条父路线 admin其中有一个
  • Php从关联数组中获取键[重复]

    这个问题在这里已经有答案了 我怎样才能从数组中只获取整个第一行 我使用 Laravel 例如当我说 request all 我收到 array 2 email gt email protected password gt adms Wh 我
  • StringBuilder 在 C# 内部如何工作?

    如何StringBuilder work 它有什么作用内部 它使用不安全的代码吗 为什么它这么快 与 操作员 当您使用 运算符构建字符串时 string s 01 s 02 s 03 s 04 然后 在第一次串联时 我们创建一个长度为 4
  • 打印出整个目录树

    我现在拥有的代码 import os Tree Tree os listdir Dir gt gt gt print Tree New Folder Textfile1 txt Textfile2 txt 这不会打印出子目录中的文件 新建文