【Python】-007 删除VS编译后生成的临时文件

【Python】-007 删除VS编译后生成的临时文件

  作为一个曾经主攻word的伪C++工程师,每次使用VS编译C++工程之后发现总会生成一堆各种各样的临时文件,虽然眼不见为净,但每次收到别人给我发的带有一堆临时文件的项目源代码的时候,内心总会有一万只神兽呼啸而过。给代码之前就不会清理一下么。。。

  虽然windows的批处理也能很好的按照特定的后缀名删除文件,但批处理我实在是不熟悉,所以只能用python来干这活了。

1 编写Python脚本递归的删除目录下的特定类型文件

'''
递归的删除目录下特定后缀名的文件,如果删除文件后文件夹为空,删除该文件夹
'''

import os
import sys

dir=[]
if(len(sys.argv) == 1):
    print("You dont input the folder path that you want to list file name, dir will be default to ./!\n")
    dir="./"
else:
    dir=sys.argv[1]

# 指定VS临时文件
tobecleanedfileexts=[".idb",".db",".ipdb",".pdb",".iobj",".ilk",".exp",".obj",".log",".tlog",".lastbuildstate",".opendb",".ipch",".pch","unsuccessfulbuild"]

dir = dir.replace("\\\\",'/')
dir = dir.replace("\\",'/')
path = dir #文件夹目录
datas = []

def CleanPath(filepath):
    fileNames = os.listdir(filepath)  # 获取当前路径下的文件名,返回List
    for file in fileNames:
        newDir = filepath + '/' + file # 将文件命加入到当前文件路径后面
        if os.path.isfile(newDir):  # 如果是文件
            fileext = os.path.splitext(file)[-1]
            if fileext in tobecleanedfileexts :
                newDir = newDir.replace("\\\\", '/')
                newDir = newDir.replace("\\", '/')
                try:
                    os.remove(newDir)
                    print("remove "+newDir)
                except PermissionError as identifier:
                    pass

        else:
            CleanPath(newDir)                #如果不是文件,递归这个文件夹的路径
            try:
                if not os.listdir(newDir):
                    os.removedirs(newDir)
                    print("removedir "+newDir)
            except FileNotFoundError as identifier:
                pass

if __name__ == "__main__":
    CleanPath(path)

2 让VS编译之后自动执行脚本

  脚本写完了,在Python里试了一下,确实能够删除特定类型的文件了。但每次编译完之后都需要手动去命令行里执行一下,有点费事。作为一个“懒惰促进社会进步”观念的信徒,这活必须让VS帮我干了。

  所以,打开VS,项目属性->生成事件->后期生成事件,在命令行里输入“python CleanVSTempFiles.py脚本路径 需要清理的路径”,这样每次生成完成之后,VS会自动执行这个脚本去清理特定的路径了。

  清理工作是做完了,但在debug模式下需要调试的时候发现刚才清理的时候把所有调试的临时文件也删除了。于是将刚才的命令行只设置到release模式下。恩,挺好了。每次release模式编译完之后进行清理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值