★ 代码
import os
# 查询的路径
search_path = r'C:\Users\damon\Desktop\目录生成器'
# 返回目录结构{"name": "目录生成器", "child": [{"name": "目录生成器", "child": []}]}
def get_files(root_path):
# 将路径处理为标准格式
file_content = {'name': os.path.basename(root_path), 'path': root_path, 'child': []}
# 遍历路径下的所有文件和文件夹
for file_or_dir in os.listdir(root_path):
# 拼接完整路径
path = os.path.join(root_path, file_or_dir)
# 如果是文件直接添加到列表
if os.path.isfile(path):
file_content['child'].append({'name': os.path.basename(path), 'path': path, 'child': []})
# 如果是文件夹递归调用函数获取文件列表
else:
file_content['child'].append(get_files(path))
return file_content
def print_file_directory(file_content):
child_directorys = file_content['child']
file_or_dir_text = '文件夹' if len(child_directorys) > 0 else '文件'
child_name_list = [directory['name'] for directory in child_directorys]
print(f"""
{file_or_dir_text}名: {file_content['name']}
{file_or_dir_text}路径: {file_content['path']}
{'子文件或子文件夹: ' + str(child_name_list) if len(child_directorys) > 0 else ''}
""", end='')
for directory in child_directorys:
print_file_directory(directory)
file_directory = get_files(search_path)
print_file_directory(file_directory)
★ 运行结果
文件夹名: 目录生成器
文件夹路径: C:\Users\damon\Desktop\目录生成器
子文件或子文件夹: ['.idea', 'Apifox-Agent-Chrome', 'assets', 'content_generator.py', 'logo.png', 'store']
文件夹名: .idea
文件夹路径: C:\Users\damon\Desktop\目录生成器\.idea
子文件或子文件夹: ['workspace.xml']
文件名: workspace.xml
文件路径: C:\Users\damon\Desktop\目录生成器\.idea\workspace.xml
文件夹名: Apifox-Agent-Chrome
文件夹路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome
子文件或子文件夹: ['adapter.js', 'background.js', 'logo-128.png', 'logo-96.png', 'manifest.json', 'runtime.js']
文件名: adapter.js
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\adapter.js
文件名: background.js
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\background.js
文件名: logo-128.png
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\logo-128.png
文件名: logo-96.png
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\logo-96.png
文件名: manifest.json
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\manifest.json
文件名: runtime.js
文件路径: C:\Users\damon\Desktop\目录生成器\Apifox-Agent-Chrome\runtime.js
文件夹名: assets
文件夹路径: C:\Users\damon\Desktop\目录生成器\assets
子文件或子文件夹: ['logo.png']
文件名: logo.png
文件路径: C:\Users\damon\Desktop\目录生成器\assets\logo.png
文件名: content_generator.py
文件路径: C:\Users\damon\Desktop\目录生成器\content_generator.py
文件名: logo.png
文件路径: C:\Users\damon\Desktop\目录生成器\logo.png
文件夹名: store
文件夹路径: C:\Users\damon\Desktop\目录生成器\store
子文件或子文件夹: ['index.js', 'modules']
文件名: index.js
文件路径: C:\Users\damon\Desktop\目录生成器\store\index.js
文件夹名: modules
文件夹路径: C:\Users\damon\Desktop\目录生成器\store\modules
子文件或子文件夹: ['setting.js', 'user.js']
文件名: setting.js
文件路径: C:\Users\damon\Desktop\目录生成器\store\modules\setting.js
文件名: user.js
文件路径: C:\Users\damon\Desktop\目录生成器\store\modules\user.js
Process finished with exit code 0
标签:文件目录,Users,生成器,Desktop,文件夹,damon,path,结构
From: https://www.cnblogs.com/cs-songbai/p/18327163