办公自动化15-一次性生成多层目录

excel里面的目录是这样的:

生成的目录是这样的

代码如下:

import os, sys
import pandas as pd 

path = ‘C:/Users/17360/Desktop/cy/‘ 

df = pd.read_excel(r‘C:\Users\17360\Desktop\test.xlsx‘,sheet_name= ‘Sheet1‘)#将excel表中的文件夹名称读入DataFrame

df.head()

menu = list(df[‘目录‘])
for lst in menu:
    print(lst)
    num = lst.split(‘ ‘)[0]#分条件,生成文件夹    
    if len(num.split("-")) == 2:
        file_name = path + str(lst) #文件夹路径
        os.mkdir(file_name) #生成文件夹
    if len(num.split("-")) == 3:
        if (len(num.split(‘-‘)[1])+len(num.split(‘-‘)[0])) == 2:
            pat = re.compile(‘^‘+num[0:3]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])) == 3:
            pat = re.compile(‘^‘+num[0:4]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if len(num.split(‘-‘)[1]) == 2&len(num.split(‘-‘)[0]) == 2:
            pat = re.compile(‘^‘+num[0:5]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        for i in menu:
            tem = pat.findall(i)
            print(tem)
            if len(tem)>0:
                file_name = path +str(tem[0]) + ‘/‘ + str(lst) #文件夹路径
                os.mkdir(file_name) #生成文件夹
    if len(num.split("-")) == 4:
        if len(num.split(‘-‘)[1]) == 1:
            pat = re.compile(‘^‘+num[0:3]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])) == 3:
            pat = re.compile(‘^‘+num[0:4]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if len(num.split(‘-‘)[1]) == 2&len(num.split(‘-‘)[0]) == 2:
            pat = re.compile(‘^‘+num[0:5]+‘[^\d]*[\u4e00-\u9fa5]+‘)

        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])+len(num.split(‘-‘)[2])) == 3:
            pat1 = re.compile(‘^‘+num[0:5]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])+len(num.split(‘-‘)[2])) == 4:
            pat1 = re.compile(‘^‘+num[0:6]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])+len(num.split(‘-‘)[2])) == 5:
            pat1 = re.compile(‘^‘+num[0:7]+‘[^\d]*[\u4e00-\u9fa5]+‘)
        if (len(num.split(‘-‘)[1]) + len(num.split(‘-‘)[0])+len(num.split(‘-‘)[2])) == 6:
            pat1 = re.compile(‘^‘+num[0:8]+‘[^\d]*[\u4e00-\u9fa5]+‘)

        for i in menu:
            tem = pat.findall(i)
            if len(tem)>0:
                s1 = tem
                print(s1)
        for i in menu:
            tem1 = pat1.findall(i)
            if len(tem1)>0:
                s2 = tem1
                print(s2)

        file_name = path +str(s1[0])+‘/‘+str(s2[0]) + ‘/‘ + str(lst) #文件夹路径
        os.mkdir(file_name) #生成文件夹

有问题欢迎提问哦~~~^_^

原文地址:https://www.cnblogs.com/lizitingxue/p/12623201.html

时间: 2024-10-27 18:38:58

办公自动化15-一次性生成多层目录的相关文章

C#利用SharpZipLib解压或压缩文件(支持多层目录递归压缩)

需要下载ICSharpCode.SharpZipLib.dll 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 using System.IO; 8 using ICSharpCode.SharpZipLib.Checksums; 9 using ICSharpCode.SharpZip

[转]JavaScript自动生成博文目录导航

转自:http://www.cnblogs.com/xdp-gacl/p/3718879.html 我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到具体的内容,这样园友们在看博客的时候就可以很方便地浏览自己感兴趣的内容,但是遗憾的是博客园不支持博文目录的生成,好像也有园友给博客园提建议,希望能够像CSDN那样能够自动生成博文目录,但是不知道是什么原因,博客园一直都没有把这个功能加上去,既然没有,那我就自己做

写个js小工具自动生成博文目录

我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到具体的内容,这样园友们在看博客的时候就可以很方便地浏览自己感兴趣的内容,但是遗憾的是博客园不支持博文目录的生成,好像也有园友给博客园提建议,希望能够像CSDN那样能够自动生成博文目录,但是不知道是什么原因,博客园一直都没有把这个功能加上去,既然没有,那我就自己做吧,研究了2天,总算是按照自己的设想做出来了,最终效果如下: 下面来介绍一下这个小工具的实现. 一.

博客园博客自动生成三级目录(generate three levels content using JS in cnblogs)

博客园博客自动生成三级目录(generate three levels content using JS in cnblogs) JS代码(JS code) 最近参考了(http://www.cnblogs.com/wangqiguo/p/4355032.html)自动生成目录的方法,我增加了能够自动生成三级目录的JS代码. I learned from (http://www.cnblogs.com/wangqiguo/p/4355032.html) about generating cont

JavaScript自动生成博文目录导航

我们在写博客的时候,如果博文里面有目录,会给人结构清晰.一种一目了然的感觉,看目录就知道这篇博文要讲解的内容,并且点击目录标题就可以跳转到具体的内容,这样园友们在看博客的时候就可以很方便地浏览自己感兴趣的内容,但是遗憾的是博客园不支持博文目录的生成,好像也有园友给博客园提建议,希望能够像CSDN那样能够自动生成博文目录,但是不知道是什么原因,博客园一直都没有把这个功能加上去,既然没有,那我就自己做吧,研究了2天,总算是按照自己的设想做出来了,最终效果如下: 下面来介绍一下这个小工具的实现. 一.

Java多层目录打包和解压代码(apache commons compress, io, lang)

Java多层目录打包和解压代码(apache commons compress, io, lang) package zip;   import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fil

[笔记][Web]利用JS生成博文目录及CSS定制博客

0. 简介 进入到cnblog这个大园子以后,和其他的一些博客网站比起来,少了些小功能,比如旁边CSDN上的目录.不过好在大神辈出,博客园可以通过申请JS权限来进行目录的生成. 由于本人在JS以及CSS上纯小白,不过一些代码还是可以看懂的,刚好园子里有着许多前辈的模板,就直接拿来使用了,在此也谢谢原作者. 1. JS代码 想要生成目录,许多都说需要JS修改权限,那个这里就直接进入设置页面,找到下方的联系邮箱直接发去就行了,工作人员回复的还是很快的. 拿到权限之后,下面就是将编(搜)写(寻)的JS

Java File类 mkdir 不能创建多层目录,如果是多层,可以调mkdirs

public static void createDir(String destDirName) { File dir = new File(destDirName); if (!dir.exists()) {// 判断目录是否存在 dir.mkdir(); //dir.mkdirs(); //多层目录需要调用mkdirs } }   注意:在JavaFile类 的mkdir方法的实现中,不能同时创建多层目录,如果是多层,可以调mkdirs!

MWeb 1.2 版更新说明和用 wkhtmltopdf 生成带目录的 PDF 和自定预览 CSS

新增 可选择在输入时是否自动插入列表编号,可以在 Preferences --> General --> Auto insert list and blockquote prefix 开启和关闭. 分享功能的 Copy as image.Save as image.Save as PDF 等现在统一都用HTML的样式了,另外还专门为分享到微薄等SNS生成的图片做了优化,比如说如果有代码,会强制换行. 新增把文档库里的单个或多个文档导出为HTML或者PDF.使用方法为:选择要导出的文档(可多选)