设为首页 收藏本站
查看: 853|回复: 0

[经验分享] windows下清理svn文件夹的python脚本

[复制链接]

尚未签到

发表于 2017-5-6 12:43:00 | 显示全部楼层 |阅读模式
用svn也是不短的时间了,有喜有忧,其中导出也是个麻烦事
文件夹里很多不能上传的文件夹都是设置的忽略(数据库连接信息等,由于用的是公用svn服务器),导出的话是看不到的,直接拷贝带svn文件夹的源目录,占用空间又至少是有用文件的两倍大小。。。
于是次次搜索.svn然后删除
后来看到个添加鼠标右键菜单的reg代码,好用是好用,迷糊的时候手一滑就game over了。。。要检出一份然后手动去添加忽略文件。。。杀人了啊。。。
看网上用python脚本写svn清理的比较多,于是学着写了个,貌似网上的脚本都是针对linux的,这个windows版的也发出来,请多指教

# -*- 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')

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-373828-1-1.html 上篇帖子: Python使用xml.etree.ElementTree解析xml文件 下篇帖子: Python实例讲解 -- 发送邮件带附件 (亲测)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表