python实现将大文件夹分割成多个子文件夹

楼主用的linux,一旦数据达到几万,文件夹打开就会变卡,同时也方便同时分工协作,便于git管理,写了个将大文件夹分割成多个小文件夹的脚本

如操作文件夹:img,脚本不破坏img的数据,创建img_1/img_2……,脚本与操作文件夹必须在同一根目录

运行时需要手动修改:mv_file('img', 10) # 操作目录,单文件夹存放数量

import os
import shutil

def mv_file(img, num):
    list_ = os.listdir(img)
    if num > len(list_):
        print('长度需小于:', len(list_))
        exit()
    num_file = int(len(list_)/num) + 1
    cnt = 0
    for n in range(1,num_file+1): # 创建文件夹
        new_file = os.path.join(img + '_' + str(n))
        if os.path.exists(new_file+'_'+str(cnt)):
            print('该路径已存在,请解决冲突', new_file)
            exit()
        print('创建文件夹:', new_file)
        os.mkdir(new_file)
        list_n = list_[num*cnt:num*(cnt+1)]
        for m in list_n:
            old_path = os.path.join(img, m)
            new_path = os.path.join(new_file, m)
            shutil.copy(old_path, new_path)
        cnt = cnt + 1
    print('============task OK!===========')
if __name__ == "__main__":
    mv_file('img', 10) # 操作目录,单文件夹存放数量

  

posted @ 2019-12-13 14:37  牛郎  阅读(3773)  评论(0编辑  收藏  举报