自动删除node_modules

2020-12-19  本文已影响0人  王国的荣耀

使用nodejs之后,node_modules太多的问题

自动删除指定文件夹下的相关文件夹 如批量删除node_modules依赖

import os
import time
import shutil


def get_dirsize(dirPath):
    size = 0
    for root, dirs, files in os.walk(dirPath):
        for file in files:
            try:
                name = os.path.join(root, file)
                temp = os.path.getsize(name)
                size += temp
            except IOError:
                error = "文件异常"
    return size / (1024*1024)

def auto_delete(file_dir,target,days):
    sum_size = 0
    for root, dirs, files in os.walk(file_dir):
        # 获取所有的目录
        for dir in dirs:
            if dir == target:
                abs_dir = os.path.join(root,dir)
                # 没必要扫子级的node_modules
                if(abs_dir.count(target) > 1):
                    break
                diff_time = (time.time() - os.path.getmtime(abs_dir))/60/60/24
                size = get_dirsize(abs_dir)
                if diff_time > days:
                    # 这行是清空文件夹的代码,建议先运行命令扫一遍,确保扫出来的文件都可以删除后,再取消注释。
                    # shutil.rmtree(abs_dir)
                    #print("已经删除:%s"%(abs_dir))
                    print("文件夹位置:%s"%(abs_dir))
                    print("文件夹大小:%.2fMB"%(size))
                    print("上次更新时间距离现在已经过去%.2f天"%(diff_time))
                    print("--------")
                    sum_size += size

    print("已找到%d天内未更新的%s文件夹,共节省%.2fMB空间"%(days,target,sum_size))

# 输入目录地址
#root = "/Users/demo/Downloads/code/"
root = "/Users/demo/test"
# 输入文件夹名称
target = "node_modules"
# 最近30天修改过的文件夹 不删除node_modules
days = 20
auto_delete(root,target,days)
上一篇下一篇

猜你喜欢

热点阅读