Python删除Delphi临时文件的小脚本
Delphi在编译过程中会产生很多临时文件,写了个Python脚本,用于删除这些临时文件.
上代码:
#------------------------------------------------------------------------------- # Name: DelDelphiTempFile.py # Purpose: # 删除Delphi临时文件脚本 # Author: garfield # # Created: 26-01-2013 # Copyright: (c) garfield 2013 # Licence: <your licence> #-------------------------------------------------------------------------------#_*_ coding=utf-8 _*_import os,sys from stat import *#预设置临时文件的扩展名信息 delphitempfile=['dcu','~pas','~dfm','~dsk']def ClearFile(path):for item in os.listdir(path):fname = os.path.join(path, item)mode = os.stat(fname).st_mode#如果是目录则递归调用if S_ISDIR(mode):ClearFile(fname)else:#判断文件是否在列表中if '.' in fname:#获得文件类型file_type = fname.rsplit('.',1)[1]if file_type in delphitempfile:print('删除文件:%s' % (fname))os.remove(fname)if __name__ == '__main__':#判断命令行参数if len(sys.argv) != 2:print( 'Use: %s path' % sys.argv[0])sys.exit(1)ClearFile(sys.argv[1])
执行:
python3 DelDelphiTempFile.py D:\MyDelphiProject
下面再对脚本改造,可以删除Delphi产生的__history文件夹和SVN版本控制产生的.svn文件夹
#------------------------------------------------------------------------------- # Name: DelDelphiTempFile.py # Purpose: # 删除Delphi临时文件脚本 # Author: garfield # # Created: 26-01-2013 # Copyright: (c) garfield 2013 # Licence: <your licence> #------------------------------------------------------------------------------- #!/usr/bin/env python3 #_*_ coding=utf-8 _*_import os,sys from stat import *#预设置临时文件的扩展名信息 delphitempfile=['dcu','~pas','~dfm','~dsk']def ClearFile(path):for item in os.listdir(path):fname = os.path.join(path, item)mode = os.stat(fname).st_mode#如果是目录则递归调用if S_ISDIR(mode):#print("进入文件夹 %s " %fname)#删除.svn和_historyif ((item == ".svn") or (item == "__history")):print("删除文件夹: %s " %fname)print("%d 已删除" % purge(fname))else:ClearFile(fname)else:#判断文件是否在列表中if '.' in fname:#获得文件类型file_type = fname.rsplit('.',1)[1]if file_type in delphitempfile:print('删除文件:%s' % (fname))os.remove(fname)def purge(path):count = 0for item in os.listdir(path):subpath = os.path.join(path, item)mode = os.stat(subpath).st_modeif S_ISDIR(mode):count += purge(subpath)else:os.chmod(subpath, S_IREAD|S_IWRITE)os.unlink(subpath)count += 1os.rmdir(path)count += 1return countif __name__ == '__main__':#判断命令行参数if len(sys.argv) != 2:print( 'Use: %s path' % sys.argv[0])sys.exit(1)ClearFile(sys.argv[1])
当然,除了以上使用递归方法来实现,还可以方便地使用os.walk方法来实现:
#------------------------------------------------------------------------------- # Name: DelDelphiTempFileII.py # Purpose: # 删除Delphi临时文件脚本 # Author: garfield # # Created: 26-01-2013 # Copyright: (c) garfield 2013 # Licence: <your licence> #-------------------------------------------------------------------------------''' os.walk: 这个方法返回的是一个三元tupple(dirpath, dirnames, filenames), 其中第一个为起始路径, 第二个为起始路径下的文件夹, 第三个是起始路径下的文件. dirpath是一个string,代表目录的路径, dirnames是一个list,包含了dirpath下所有子目录的名字, filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name). '''#!/usr/bin/env python3 #_*_ coding=utf-8 _*_import os,sys from stat import *#预设置临时文件的扩展名信息 delphitempfile=['dcu','~pas','~dfm','~dsk']def ClearFile(path):for t in os.walk(path):for fname in t[2]:if '.' in fname:#获得文件类型file_type = fname.rsplit('.',1)[1]if file_type in delphitempfile:print('删除文件:%s' % (os.path.join(t[0],fname)))os.remove(os.path.join(t[0],fname))for p in t[1]:#print("进入文件夹 %s " %fname)#删除.svn和_historyif ((p == ".svn") or (p == "__history")):print("删除文件夹: %s " % os.path.join(t[0],p))print("%d 已删除" % purge(os.path.join(t[0],p)))def purge(path):count = 0for item in os.listdir(path):subpath = os.path.join(path, item)mode = os.stat(subpath).st_modeif S_ISDIR(mode):count += purge(subpath)else:os.chmod(subpath, S_IREAD|S_IWRITE)os.unlink(subpath)count += 1os.rmdir(path)count += 1return countif __name__ == '__main__':#判断命令行参数if len(sys.argv) != 2:print( 'Use: %s path' % sys.argv[0])sys.exit(1)ClearFile(sys.argv[1])
注:以上代码均在Python3.2上调试通过.
转载于:https://www.cnblogs.com/GarfieldTom/archive/2013/01/26/2877811.html
Python删除Delphi临时文件的小脚本相关推荐
- 用python实现背单词的小脚本系统
python 前提准备 安装好python及其环境 安装好Oracle数据库 python中安装好cx_Oracle包,且能与数据库正常联立交互 注: 前提准备部分的内容不做描述,百度均有教程 步骤: ...
- python 删除文件、目录_python脚本删除文件及删除文件目录的方法
类型:数据恢复大小:372KB语言:中文 评分:.9 标签: 立即下载 下面来看一下python里面是如何删除一个文件及文件夹的~~ 首先引入OS模块 import os 删除文件: os.remov ...
- python打印九九加法表_Python小脚本
1.跑马灯效果 ''' 跑马灯 ''' import os import time def main(): content='人生苦短,我用python....' while True: os.sys ...
- python批量删除微信好友_Python找出微信上删除你好友的人脚本写法
原标题:Python找出微信上删除你好友的人脚本写法 相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了.但群发消息不仅仅会把通讯录里面所有的好友骚扰一遍, ...
- 查看Linux服务器网卡流量小脚本shell和Python各一例
有时我们需要较为实时的查看服务器上的网卡流量,这里我写了两个小脚本,一个用shell(先写的,一次只能查看一个网卡),另一个用Python(后写的,一次可查看多个网卡).脚本中都用了while tru ...
- python删除数据库的数据完整代码_利用python操作小程序云数据库实现简单的增删改查...
不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...
- python分词统计词频_基于结巴分词做的全文分词统计词频小脚本
受朋友之托,写一个小脚本,断断续续做了两天,写一下两天的收获. 起因 有个朋友说专业文档很枯燥难懂,需要一个能把全文的关键词找出来并排序的东西,找不到现成的,问我能不能做一个.我前些天也听车神说有关分 ...
- python爬虫脚本ie=utf-8_分享一个Python爬虫小脚本
此Python小脚本为抓取此页面:http://tieba.baidu.com/p/2108681777 下的所有jpg图像 ''' Created on 2013-4-2 @author: Admi ...
- python课堂随机点名_【工作中的Python】随机点名小脚本
背景:项目组每周的例会中,有一项固定内容就是技术分享,可以是与工作相关或无关的任何技术主题.进行技术分享讲解的同学是随机抽签的.由此做了一个Python的小脚本用于抽取姓名. 脚本内容如下: #!/u ...
最新文章
- elasticsearch 的filter cache (search 技术的冰山一角)
- python-学习 协程函数 模块与包
- 成功解决TypeError: Object of type 'ndarray' is not JSON serializable
- 财务审批流程都有哪些步骤呢?
- Javascript中的循环变量声明,到底应该放在哪儿?
- HTML连载70-相片墙、盒子阴影和文字阴影
- Python六大框架对比
- Honeyview 漫画阅读器 v5.30.zip 下载
- linux卸载kodi,如何在Ubuntu 18.04上安装Kodi
- java去除水印,Java 删除/复制Word文档水印
- Java - 使用Cipher类实现加密(RSA)
- #PPT进阶——图片变形
- PHP 垃圾回收机制
- 第二章 进程的描述与控制【操作系统】
- 下载kaggle比赛的数据集
- 1.socket网络编程
- gzp解压命令 linux_Linux gzip命令:压缩文件或目录
- 软工小队第二次会议 4-23
- C/C++——老夫记不住
- selenium登录优酷
热门文章
- c语言整数与平均值,编写求一组整数的和与平均值的程序
- linux分区表与uboot,Linux和Uboot下eMMC boot分区读写
- php打印输出小于10的数字,PHP 字符串输出 echo、print 与 printf 函数
- 最近公共祖先_LCA 最近公共祖先
- mysql里的max怎么用_MySQL中的max()函数使用教程
- Mysql常见的面试总结
- 8086控制转移指令学习笔记
- endnote修改正文中参考文献标注_请问endnote里,如何把正文中插入参考文献处的格式由数字转为(作者,年份)?感恩!...
- 打印的图片不清晰_如何调节图片kb,但又不改变图片的清晰度?
- iphone7配置_西安苹果售后维修教您iphone7发热严重、耗电快怎么解决?