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

  • 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
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

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