文件规范检查

楼主
我是社区第713489位番薯,欢迎点我头像关注我哦~

# -*- coding: UTF-8 -*-

import os,sys

 

from time import localtime,strftime,time

import getpass

import sqlite3

import re

import shutil

#sys.path.append(r"h:\Pypak")

sys.path.append(r"pak路径")

 

import openpyxl

from openpyxl.worksheet.header_footer import _HeaderFooterPart

from openpyxl.styles import Font

 

 

 

##os.rename(r'H:\0830p\fff',r'H:\0830p\ddd')

def folder_ren():

    file0=0

    cnt=0

    cnt_all=0

    cnt_no1=0

    fail_no=0

    folders=[]

    ############           ----------------------------------------->>>>>>>>>>>>>>>

    for root, dirs, files in os.walk(r"检查路径",topdown=False):

        if root.upper().find("PYPAK")>=0:

            continue

        print(root)

        print(cnt_all,cnt,fail_no)

        bianhao=[]

        cnt_all+=1

        for dd in dirs:

            if re.match(r'\d{2,3}[ _]',dd)!=None:

                bh=re.match(r'\d{2,3}',dd).group()

                if bh in bianhao:

                    dd2=re.sub(r'\d{2,3}[ _]','',dd)

                    try:

                        os.rename(os.path.join(root,dd),os.path.join(root,dd2))

                    except Exception:

                        print('Fail to ............. ' + os.path.join(root,dd))

 

                    dirs.append(dd2)

                else:

                    bianhao.append(re.match(r'\d{2,3}',dd).group())

 

        for dd in dirs:

            if re.match(r'\d{2,3}[ ]',dd)!=None:

                ddnew=re.sub(r'(?<=\d{2}) ','_', dd)

                try:

                    os.rename(os.path.join(root,dd),os.path.join(root,ddnew))

                    print('ok.... '+os.path.join(root,dd))

                    cnt+=1

                except Exception:

                    print('Fail to ............. ' + os.path.join(root,dd))

                    fail_no+=1

                    folders.append(os.path.join(root,dd))

 

 

            if re.match(r'\d{2,3}[_ ]',dd)==None:

                for nn in range(1,99):

                    if format(nn,'02d') not in bianhao:

                        break

 

                try:

                    os.rename(os.path.join(root,dd),os.path.join(root,str(format(nn,'02d'))+'_'+dd))

                    bianhao.append(format(nn,'02d'))

                    print('ok.... '+os.path.join(root,dd))

                    cnt+=1

                except Exception:

                    print('Fail to ............. ' + os.path.join(root,dd))

                    fail_no+=1

                    folders.append(os.path.join(root,dd))

############     移动文件      ----------------------------------------->>>>>>>>>>>>>>>

 

        if dirs!=[] and files!=[]:

            if len(files) <= 6:

                ff=[x for x in files]

                for file in ff:

                    if file.find('~$')>=0 or file.find('Thubms.db')>=0:

                        ff.remove(file)

            else:

                ff=['a','b']

            if len(ff)>1:

                try:

                    os.mkdir(os.path.join(root,'95_old'))

                except Exception:

                    pass

            for file in files:

                try:

                    shutil.move(os.path.join(root,file),os.path.join(root,'95_old\\'+file))

                    file0+=1

                except Exception:

                    pass

 

 

    print('\n\n不合格文件夹如下:\n\n')

    for x in folders:

        print(x)

 

    print('一共包含 {}  个文件夹。'.format(cnt_all))

    print('一共移动了 {}  个文件到 95_old下面。'.format(file0))

    print('一共修改了 {}  个文件夹。'.format(cnt))

    print('一共失败了 {}  个文件夹。'.format(fail_no))

 

 

def folder_chk():

    cnt=0

    cnt_no1=0

    cnt_no2=0

    folders=[]

    ############           ----------------------------------------->>>>>>>>>>>>>>>

    for root, dirs, files in os.walk(r"检查路径2",topdown=False):

        nn=0

 

        if root.upper().find("PYPAK")==-1:

            cnt+=1

        else:

            continue

 

        if dirs!=[] and files!=[] and len(files)>=3:

            cnt_no1+=1

            folders.append(root)

            print(root)

 

        if re.match(r"\d{2,3}[_ ]",root.rsplit('\\',1)[1])==None:

            cnt_no2+=1

##            print(root)

            folders.append(root)

        print(cnt,cnt_no1,cnt_no2)

 

##    print('\n\n不合格文件夹如下:\n\n')

##    for x in folders:

##        print(x)

    print(cnt,cnt_no1,cnt_no2)

 

 

if __name__ == '__main__':

 

    folder_chk()

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表