这几天要整理一点文档,需要批量生成一些文件夹,(其实也可以进一步自动生成各种文档),用到了py的功能,在此记录一下。
1.准备工作
需要两个库支持openpyxl和os
安装
pip install openpyxl
2.代码思路
打算先用openpyxl库的函数来读取excel,把数据拿出来以后放在一个字典里,然后把字典的数据用//拼接成一个路径。
可以偷懒直接在excel的目录下生成文件夹数据就好。
然后用os的库来创建文件夹。
os.makedirs()可以用来创建文件夹
3.测试数据
创建了一个excel文件。计划是创建一个学校文件夹,下面有一小和二小。然后分别对应年级和班级用来测试
4.代码部分
import openpyxl
import os
def parse_excel(excel_path):
workbook = openpyxl.load_workbook(excel_path)#打开excel
sheet = workbook.active#获取当前excel的数据
directory_stack = [] # 创建一个字典用来装目录
for row in sheet.iter_rows(min_row=1, values_only=True):#min_row用来控制从第几行开始,默认是1
for i, cell_value in enumerate(row):
if cell_value is not None and cell_value != "@":
directory_stack = directory_stack[:i] # 清空目录栈中当前行级别及以下的目录,
directory_stack.append(cell_value) # 将当前目录加入目录栈
directory_path = "\\".join(directory_stack) # 构建完整的目录路径
folder_path = excel_path.replace(os.path.basename(excel_path), "") + directory_path#把目录拼接在当前excel的当前目录下
os.makedirs(folder_path, exist_ok=True) # 创建目录,如果目录已存在则忽略
parse_excel(r"D:\data\testFolder.xlsx")
5.测试结果
执行后,生成一个文件夹。检查了下数据,ok
想了下自动生成word或者excel路径也是想通的,下一次用到或者有空时再更新~~周五愉快!下班!
参考文档
Python读取excel数据并创建文件目录树-全解析过程及逻辑