import os
# 读取文件夹结构文件并转化为列表形式
with open('folder_structure.txt', encoding='utf-8') as f:
lines = f.readlines()
# 删除每行末尾的换行符,并将缩进转化为层级关系
lines = [line.rstrip() for line in lines]
folders = []
for line in lines:
depth = line.count(" ")
name = line.strip().replace("├──", "").replace("└──", "").replace("│ ", "").replace(" ", "")
folders.append((depth, name))
# 定义根目录并创建文件夹
root_folder = folders[0][1]
os.makedirs(root_folder, exist_ok=True)
# 逐行处理每个文件夹并创建相应的子文件夹
stack = [(0, root_folder)]
for folder in folders[1:]:
depth, name = folder
while stack[-1][0] >= depth:
stack.pop()
parent_folder = stack[-1][1]
path = os.path.join(parent_folder, name)
try:
os.mkdir(path)
except:
# 如果文件夹名称包含中文字符,则使用 GBK 编码格式进行编码
os.mkdir(path.encode('gbk'))
stack.append((depth, path))
假设文件夹结构保存在名为 folder_structure.txt
的文本文件中,文件夹名以缩进的形式表示。
如:
总
一
K
J
二
E
D
D
G
三
D