本文为Python批量删除windows下的svn文件夹的方法。几乎每一个目录下都有svn文件夹,手动删除费时费力还容易出现纰漏,那可不可以用python脚本来解决这个事情呢?当然可以了,开题报告,下面就为大家提供一段可以自动清理windows下svn文件夹的方法的代码示例。
这段Python批量删除windows下svn文件夹的方法的代码,有很详细的注释,第一段语句的含义都很清楚的标明了。
正文代码如下:
# -*- coding: cp936 -*- # 注明字符集 # file:clearsvn.py 删除svn目录下的所有svn文件 import os,win32con,win32api #清除文件名头尾的引号 def trimpath(pathin): #如果头部存在引号 if pathin[0] == ''': pathin = pathin[1:] #如果尾部存在引号 if pathin[(len(pathin)-1)] == ''': pathin = pathin[:(len(pathin)-1)] #返回清理首尾后的字串 return pathin def clearsvn(path): #列出子目录 filenames = os.listdir(path) for singlefile in filenames: pathfile = path + '\' + singlefile #子目录判断是否为svn文件夹 if os.path.isdir(pathfile): if singlefile.find('.svn') != -1: #是的话清理文件夹后删除文件夹 deltree(pathfile) print '清理目录:' + pathfile #修改属性,同linux下chmod win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL) #api删除空文件夹 os.rmdir(pathfile) else: #不是的话递归到下一层 clearsvn(pathfile) # def deltree(path): filenames = os.listdir(path) #遍历所有子目录和文件夹 for singlefile in filenames: pathfile = path + '\' + singlefile #如果是文件夹的话递归清理 if os.path.isdir(pathfile): print '清理目录:' + pathfile #修改属性,同linux下chmod win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL) #递归到下一层 deltree(pathfile) #api删除空文件夹 os.rmdir(pathfile) #如果是文件的话则删除 if os.path.isfile(pathfile): print '删除文件:' + pathfile #修改属性,同linux下chmod win32api.SetFileAttributes(pathfile, win32con.FILE_ATTRIBUTE_NORMAL) #api删除文件 os.remove(pathfile) if __name__=='__main__': #提示会员输入目录路径 pathin = raw_input('拖放要删除文件所在目录到此:') #清理字串首尾的引号 path = trimpath(pathin) #确认文件夹 choose = raw_input('需要清理的文件夹为 [ ' + path + ' ] y/n?:') if choose == 'y' or choose == 'Y': #检查会员输入的目录是否存在,如果不存在则退出程序 if os.path.exists(path)==False: print '输入的目录不存在!' os._exit(1) #遍历子文件夹进行删除 clearsvn(path) print '清理完成!' #运行结束暂停,显示友好信息 os.system('pause')