- A+
事情的起因是这样的,个人创建了一个wordpress博客网站同时想对网站进行动静分离,需要将博客根目录下wp-content和wp-includes目录里面的图片css js woff字体等分离出来,将其他后缀名格式如:.PHP的动态文件删除,然后再传到七牛或又拍云存储服务器上。
wp-content和wp-includes两个目录里面的文件很多,同时也包含了主题、插件等相应的文件,若一股脑的将这两个文件夹都传到云存储服务器上是不行的,里面或许会有涉及到账号、密码等信息机密的文件,他人知道后会直接访问链接下载到。若一个个手动排除删掉不需要的后缀名文件会很麻烦,因此想到直接使用python来批量删除不需要的后缀格式文件。
一、wordpress静态动态文件后缀格式类型
首先在本地电脑上将wp-content和wp-includes两个文件夹拷贝到另外一个文件夹中,如:D:\wordpress 中,然后打开Pycharm编辑器,在py文件中引入os模块并使用os.walk函数遍历D:\wordpress文件夹及其里面的所有文件。然后使用os.path.splitext函数将每个文件的文件名与后缀分离。通过运行脚本发现:D:\wordpress文件夹中所有文件拓展名格式类型如下:
- '.json', '.svg', '.js', '.png', '.css', '.ico', '.xml', '.woff', '.crt', '.gz', '.gif', '.scss', '.touch', '.ttf', '.md', '.html', '.mo', '.xsl', '.pot', '.zip', '.txt', '.jpg', '.eot', '.php', '.po', '.woff2'
里面包含了图片格式:.svg .png .ico .gif .jpg (还有其他如:.jpeg .bmp)
样式格式:.css .scss
脚本格式:.js
字体格式:.woff .ttf .woff2 .eot
压缩格式:.gz .zip
文字格式:.json .txt .md
证书格式:.rct 等等
其中每位站长wordpress博客中的主题、插件等不同,后缀格式数量会和上面的若有差别。
二、批量删除或保留需要的后缀格式文件
wordpress动静分离中需要进行cdn加速的静态文件主要包括图片、js、css等格式其他格式不需要。因此,主要选出了如下拓展名类型的文件上传到云存储服务器中进行cdn加速。如:
- ".bmp",".gif",".ico",".jpg",".jpeg",".png",".rtf",".svg",".woff",".ttf",".scss",".css",".js" ,".eot"
其他的文件可以从wordpress文件夹中删除了。下面使实现的python代码。
三、python批量删除后缀文件脚本代码
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import os
- def del_files(path):
- for root, dirs, files in os.walk(path):
- for name in files:
- fullname = os.path.join(root, name)
- (filename, extension) = os.path.splitext(name)
- full_extend.add(extension)
- # 批量删除不再以下列表中的后缀格式文件
- if extension not in [".bmp",".gif",".ico",".jpg",".jpeg",".png",".rtf",".svg",".woff",".ttf",".scss",".css",".js" ,".eot"]:
- os.remove(fullname)
- print("已删除不需要的后缀格式文件: {}".format(fullname))
- # 注释掉了打印所有拓展名的代码,若需要开启请先将上面三行代码注释然后再开启打印
- # print(full_extend)
- if __name__ == "__main__":
- full_extend = set()
- del_path = "D:\wordpress"
- del_files(del_path)