Python 实现查找静态网页中未引用的资源文件

在利用网站模板创建自已的网站时,经常会有一些残留或垃圾文件。写了一个简单的脚本中可以找出当前目录中未使用的图片、css、js、html 文件。

# -*- coding: UTF-8 -*-
import os
import sys
import time

file_ext = ('.eot', '.svg', '.tff', '.woff', '.png', '.jpg', '.css','.js', '.html')
text_file_ext = ('.css','.js','.html')
exclude_files = ('index.html')

files = {}

file_refers = {}

## Linux/MacOS 下直接删除文件
command = '/bin/rm {}/{}'

## 显示文件列表,如果需要备份可先形成,可以 python asset_cleaner.py | xargs tar cvf asset.bak.tar
# command = '{}/{}'


def findstring(pathfile,target):
    fp = open(pathfile, "r")
    strr = fp.read()

    if(strr.find("set_commission") != -1):
        return True
    return False

for parent, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        if os.path.splitext(filename)[1] in file_ext and not filename in exclude_files:
            files.update({filename:parent})
            file_refers.update({filename:False})

for parent, dirnames, filenames in os.walk('.'):
    for openfile in filenames:
        if not os.path.splitext(openfile)[1] in text_file_ext:
            continue

        try:
            fp = open(parent + "/" + openfile, "r")
            file_string = fp.read()

            for filename in files:
                if file_string.find(filename) >=0:
                    file_refers.update({filename:True})

            fp.close()
        except Exception as err:
            sys.stderr.write(parent + '/' + openfile + ':' + "{}\n".format(err))
            continue

sys.stderr.write("未引用的文件如下:\n---------------------------\n")
time.sleep(0.1)
for file in file_refers:
    if not file_refers[file]:
        print(command.format(files[file], file))
time.sleep(0.1)
sys.stderr.write("------------结束-----------\n")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon-2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值