列出文件夹及子目录中所有的拓展名并批量删除不需要的文件

  • A+
所属分类:python实战案例

事情的起因是这样的,个人创建了一个wordpress博客网站同时想对网站进行动静分离,需要将博客根目录下wp-content和wp-includes目录里面的图片css js woff字体等分离出来,将其他后缀名格式如:.PHP的动态文件删除,然后再传到七牛或又拍云存储服务器上。

wp-content和wp-includes两个目录里面的文件很多,同时也包含了主题、插件等相应的文件,若一股脑的将这两个文件夹都传到云存储服务器上是不行的,里面或许会有涉及到账号、密码等信息机密的文件,他人知道后会直接访问链接下载到。若一个个手动排除删掉不需要的后缀名文件会很麻烦,因此想到直接使用python来批量删除不需要的后缀格式文件。

一、wordpress静态动态文件后缀格式类型

操作环境

 这里使用的环境是Windows10 64操作系统,Python3.6版本的软件,Pycharm编辑器,若没有安装Python的朋友请自行安装准备好使用环境。

首先在本地电脑上将wp-content和wp-includes两个文件夹拷贝到另外一个文件夹中,如:D:\wordpress  中,然后打开Pycharm编辑器,在py文件中引入os模块并使用os.walk函数遍历D:\wordpress文件夹及其里面的所有文件。然后使用os.path.splitext函数将每个文件的文件名与后缀分离。通过运行脚本发现:D:\wordpress文件夹中所有文件拓展名格式类型如下:

  1. '.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加速。如:

  1. ".bmp",".gif",".ico",".jpg",".jpeg",".png",".rtf",".svg",".woff",".ttf",".scss",".css",".js" ,".eot"

其他的文件可以从wordpress文件夹中删除了。下面使实现的python代码。

三、python批量删除后缀文件脚本代码

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. def del_files(path):
  5.     for root, dirs, files in os.walk(path):
  6.         for name in files:
  7.             fullname = os.path.join(root, name)
  8.             (filename, extension) = os.path.splitext(name)
  9.             full_extend.add(extension)
  10.             # 批量删除不再以下列表中的后缀格式文件
  11.             if extension not in [".bmp",".gif",".ico",".jpg",".jpeg",".png",".rtf",".svg",".woff",".ttf",".scss",".css",".js" ,".eot"]:
  12.                 os.remove(fullname)
  13.                 print("已删除不需要的后缀格式文件: {}".format(fullname))
  14.     # 注释掉了打印所有拓展名的代码,若需要开启请先将上面三行代码注释然后再开启打印
  15.     # print(full_extend)
  16. if __name__ == "__main__":
  17.     full_extend = set()
  18.     del_path = "D:\wordpress"
  19.     del_files(del_path)

 

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: