由于给客户的发布版本上客户改动了些代码和图片,我们这边给他们更新publish都是增量更新(开发提供更新指定的文件,我们提取出来给客户进行覆盖更新),但有时需要更新的文件较多导致不得不一个一个的进行查找、替换,工作量大而且容易出错。所以用python写个保留pulish后目录的指定文件、删除其他文件的功能。代码如下import os import os.pathdef DeleteFiles(path,fileList): for parent,dirnames,filenames in os.walk(path): FullPathList = [] DestPathList = [] for x in fileList: DestPath = path + x DestPathList.append(DestPath) for filename in filenames: FullPath = os.path.join(parent,filename) FullPathList.append(FullPath) for xlist in FullPathList: if xlist not in DestPathList: os.remove(xlist)代码解释: 1、for parent,dirnames,filenames in os.walk(path): 该for循环用于遍历指定path的父文件夹、文件夹名(不含目录)、文件名 2、 for x in fileList: DestPath = path + x DestPathList.append(DestPath) 该方法两个参数分别是path,filelist。path用来指定publish文件的存放目录,例如:"D:publish",filelist通过list存放你希望保留的文件及该文件路径,例如: [r"1.txt",r"a1.txt"],然后将path和filelist拼接起来存放到另一个列表中就是你希望保存文件的完整路径存放在DestPathList中,既["D:\publish\1.txt","D:\publish\a\1.txt"] 3、 for filename in filenames: FullPath = os.path.join(parent,filename) FullPathList.append(FullPath) 将目录下所有文件的绝对路径存放在列表FullPathList中 4、 for xlist in FullPathList: if xlist not in DestPathList: os.remove(xlist) 遍历FullPathList中元素跟DestPathList中元素进行比对,如果不相同则删除文件功能虽然简单,但工作中还是比较实用的,故在此留下脚印。无需操作系统直接运行 Python 代码 http://www.linuxidc.com/Linux/2015-05/117357.htmCentOS上源码安装Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htmPython 的详细介绍:请点这里 Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117634.htm