首页 > 其他分享 >前端排除项目中未使用资源脚本

前端排除项目中未使用资源脚本

时间:2024-01-05 15:56:50浏览次数:34  
标签:脚本 files name 前端 中未 file images path image

import os

class FileData:
    def __init__(self, name, path):
        self.name = name
        self.path = path
# 遍历项目文件夹中的所有图片文件
image_files = []
def get_all_image_files(folder):
    for root, dirs, files in os.walk(folder):
        for file in files:
            if file.endswith(".jpg") or file.endswith(".png") or file.endswith(".jpeg") or file.endswith(".gif"):
                filenew1 = FileData(file, os.path.join(root, file))
                image_files.append(filenew1)
        for dir in dirs:
            get_all_image_files(os.path.join(root, dir))
    return

# 在代码文件中搜索图片文件的引用
referenced_files = []
def search_image_references(image_files, code_folder):
    for root, dirs, files in os.walk(code_folder):
        for file in files:
            if file.endswith(".vue") or file.endswith(".css") or file.endswith(".js"):
                with open(os.path.join(root, file), 'r', encoding='utf-8') as f:
                    content = f.read()
                    for image_file in image_files:
                        if image_file.name in content:
                            if(image_file.name not in referenced_files):
                                 referenced_files.append(image_file.name)
                           
        for dir in dirs:
            search_image_references(image_files, os.path.join(root, dir))
    return

# 找出没有被引用的图片文件
def find_unused_images(all_images, referenced_images):
    unused_images=[]
    for image in all_images:
        if(image.name not in referenced_images):
             if os.path.exists(image.path):
                os.remove(image.path)
                print(f"文件 {image.name} 删除成功")
    return unused_images

# 主函数
def main():
    project_folder = "图片资源路径"
    code_folder = "代码路径"

    get_all_image_files(project_folder)
    search_image_references(image_files, code_folder)
    unused_images = find_unused_images(image_files, referenced_files)

    print("Unused images:")

if __name__ == "__main__":
    main()

 

标签:脚本,files,name,前端,中未,file,images,path,image
From: https://www.cnblogs.com/huangqiang0208/p/17947423

相关文章

  • 网卡冗余性测试脚本
    #!/bin/bash#检查是否提供了足够的参数if["$#"-ne2];thenecho"Usage:$0<interface_name><gateway_address>"exit1fi#获取参数INTERFACE_NAME="$1"GATEWAY="$2"#检查网关的可达性echo"正在检查网关$GATEWAY的......
  • 【前端】安装指定版本的nodejs
    先安装curlsudoaptinstallcurl以下是Nodejs18.x的安装,一行代码搞定&&\的意思是前面的命令执行无误后,再执行后面代码curl-fsSLhttps://deb.nodesource.com/setup_18.x|sudo-Ebash-&&\sudoapt-getinstall-ynodejs......
  • 40 个简单又有效的 Linux Shell 脚本示例
    原创:厦门微思网络  【微思2002年成立,专业IT认证培训21年!】linux学习专栏历史上,shell一直是类Unix系统的本地命令行解释器。它已被证明是Unix的主要功能之一,并发展成为一个全新的主题。Linux提供了各种功能强大的shell,包括Bash、Zsh、Tcsh和Ksh。这些外壳最令人惊讶......
  • 前端歌谣-第四拾九课-node之http模块之fs模块
    前言我是歌谣微信公众号关注前端小歌谣一起学习前端知识今天继续给大家讲解node中fs模块的讲解创建文件constfs=require("fs")fs.mkdir("./geyao",(err)=>{console.log(err)if(err&&err.code==="EEXIST"){console.log("目录已经存在")}})运行结果重命......
  • 前端歌谣-第五十课-node之http模块之fs模块(续)
    前言我是歌谣微信公众号关注前端小歌谣一起学习前端知识今天继续给大家讲解node中fs模块的讲解同步创建constfs=require("fs")fs.mkdirSync("./geyao1",(err)=>{console.log(err)if(err&&err.code==="EEXIST"){console.log("目录已经存在")}})运行......
  • Elasticsearch7.X Scripting脚本使用详解
    0、题记除了官方文档,其他能找到的介绍Elasticsearch脚本(Scripting)的资料少之又少。一方面:性能问题。官方文档性能优化中明确指出使用脚本会导致性能低;另一方面:使用场景相对少。非复杂业务场景下,基础的增、删、改、查基本上就能搞定。但,不能否认,在解决复杂业务问题(如:自定义评分、自......
  • vmware自动扩容所有磁盘脚本
    从vmware中获取的自动扩容磁盘脚本#!/bin/bash##Copyright2016-2020VMware,Inc.Allrightsreserved.##autogrowGrowallpartitionsto100%#/usr/lib/applmgmt/support/scripts/resize-root.py./usr/sbin/disk_utils.shlvm_autogrow#Resizeswapparti......
  • 前端,build后index报错,noscript
    解决方法:npxupdate-browserslist-db@latest......
  • 前端歌谣-第四拾柒课-node之http模块之爬虫
    前言我是歌谣微信公众号关注前端小歌谣一起学习前端知识今天继续给大家讲解node中爬虫的讲解安装npminit-ynpmicheerio案例varhttp=require("http")varurl=require("url")varhttps=require("https")varcheerio=require("cheerio")http.createServer((req,res)=>{......
  • 前端歌谣-第四拾捌课-node之http模块之event模块
    前言我是歌谣微信公众号关注前端小歌谣一起学习前端知识今天继续给大家讲解node中event的讲解案例constEventEmitter=require("events")constevent=newEventEmitter()event.on("play",()=>{console.log("事件触发了")})event.emit("play")运行结果案例1varhttp=r......