python - 使用 python 读取有关目录及其子目录的信息
问题描述
我正在开发一个 python(3.6) 项目,我需要在其中克隆一个 GitHub 存储库,其目录结构如下:
|parent_DIR
|--sub_DIR
|file1....
|file2....
|--sub_DIR2
|file1...
现在我需要获取以下信息:
1. Parent directory name
2. How many subdirectories are
3. names of subdirectories
这是我克隆 GitHub 存储库的方式:
来自views.py:
# clone the github repo
tempdir = tempfile.mkdtemp()
saved_unmask = os.umask(0o077)
out_dir = os.path.join(tempdir)
Repo.clone_from(data['repo_url'], out_dir)
解决方案
要遍历目录,请使用os.scandir(path='parent_directory')
. 这将返回对象的迭代器,os.DirEntry
父目录中的每个文件或目录一个。dir_entry.name
将为您提供文件/子目录名称,并且该对象可以告诉您条目是否为目录is_dir()
。对于每个子目录,再次调用相同的函数,对子目录的每个子目录(如果存在)以此类推。
要获取目录中的目录和文件的数量,请为迭代器返回给您的每个对象增加一个计数器(请记住,这将包括.
and ..
)
推荐阅读
- azure - 在 VM 上配置 Mosquitto 以连接到 Azure WebApp
- azure-table-storage - 使用 PBI API 以编程方式更新 PowerBI 数据源参数
- c# - 设置 DataGridView 属性时抛出异常
- reinforcement-learning - Rllib 的 PPO 政策网络
- ios - 如何在应用程序启动时保留带有子项的 SwiftUI 列表的展开/折叠状态?
- html - 手机放大时如何在屏幕中央打开弹窗?
- sql - 在apache derby db中创建用户和书籍之间的关系
- oracle - 如何使用 Execute Immediate 语句嵌套在 Execute Immediate 中
- flutter - Flutter:用于验证的 for 循环只读取第一个索引而不是所有索引
- json - 雪花 - 如何在不使用硬编码键的情况下搜索 json 值中的值