Python-小实战-1.0

Python-小实战-1.0,第1张

说明:将某文件下的文件夹目录,再下级文件夹目录中的指定excel批量重命名,同时将重命名文件复制到另一个文件夹,并将特定文件名称指定为a1...an,b1...bn,c1...cn。

代码:

缺点:嵌套三个循环性能降低

#环境python3.x
import os
import shutil
#导入文件路径路径
path = 'C:/Users/xxx/xxx/测试' 
#复制目标路径 
target_path = os.path.abspath(r'C:/Users/xxx/xxx/测试-新')
 
#获取该目录下所有低一级别子目录,存入列表中
dirlist = os.listdir(path)

akaname = ['a','b','c']
filename = ['1.xlsx','2.xlsx','3.xlsx']

#外层文件夹计数
i = 0
k = 0
 
for dir in dirlist:
    #将path1设置为第一个文件夹
    path1 = path + os.sep + dirlist[i]
    dirlist1 = os.listdir(path1)
    if os.path.isdir(path1):
        value1 = os.listdir(path1)
    #n为同一文件夹下文件数量
        ppop = 0
        n = 0
        for dir in dirlist1:
            #将path2设置为第二个文件夹 
            path2 = path1 + os.sep + dirlist1[j]
            #获取path2文件夹下的文件,存储在value2列表中
            if os.path.isdir(path2):
                value2 = os.listdir(path2)
                for excel in value2:
                    if value2[ppop] == filename[0]:
                        #endswith()方法为检测文件后缀
                        if value2[n].endswith('xlsx'):
                                #oldname为表格的绝对路径
                                oldname = path2 + os.sep + value2[ppop]
                                #newname为新表格的绝对路径
                                newname = path2 + os.sep + akaname[0] +  str(k+1)  + '.xlsx'
                                newname_1 = path2 + os.sep + akaname[0] +  str(k+1)                             
                                #将文件重命名
                                os.rename(oldname, newname) 
                                #将重命名文件复制到目标文件                                                    
                                shutil.copy(newname,target_path)                                
                        n+=1
                    elif value2[ppop] == filename[1]:
                        #endswith()方法为检测文件后缀
                        if value2[n].endswith('xlsx'):
                                #oldname为表格的绝对路径
                                oldname = path2 + os.sep + value2[ppop]
                                #newname为新表格的绝对路径
                                newname = path2 + os.sep + akaname[1] +  str(k+1)  + '.xlsx'
                                newname_1 = path2 + os.sep + akaname[1] +  str(k+1)
                                #将文件重命名
                                os.rename(oldname, newname)
                                shutil.copy(newname,target_path)                              
                        n+=1
                    elif value2[ppop] == filename[2]:
                        #endswith()方法为检测文件后缀
                        if value2[n].endswith('xlsx'):
                                #oldname为表格的绝对路径
                                oldname = path2 + os.sep + value2[ppop]
                                #newname为新表格的绝对路径
                                newname = path2 + os.sep + akaname[2] +  str(k+1)  + '.xlsx'
                                newname_1 = path2 + os.sep + akaname[2] +  str(k+1)                              
                                #将文件重命名
                                os.rename(oldname, newname)                              
                                shutil.copy(newname,target_path)                                
                        n+=1
                    ppop+=1 
                k+=1
                           
    i+=1
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/714558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存