首页 > 解决方案 > 使用 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)

标签: pythondjangoglob

解决方案


要遍历目录,请使用os.scandir(path='parent_directory'). 这将返回对象的迭代器,os.DirEntry父目录中的每个文件或目录一个。dir_entry.name将为您提供文件/子目录名称,并且该对象可以告诉您条目是否为目录is_dir()。对于每个子目录,再次调用相同的函数,对子目录的每个子目录(如果存在)以此类推。

要获取目录中的目录和文件的数量,请为迭代器返回给您的每个对象增加一个计数器(请记住,这将包括.and ..


推荐阅读