4行python代码,删除svn文件夹

svn很好用,但是如果要删除svn文件夹的绑定是个很麻烦的事情,每个目录下都有.svn的文件夹,必须全部删掉才行。手动删除费时费力,一般都写段脚本搞定,不过网上搜索出来的python脚本都太冗长了,一点也体现不出python的优势。如下,网上搜索到得代码:

ExpandedBlockStart.gif 代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->  1  # coding=utf-8
 2  import  os
 3  import  shutil
 4  import  sys
 5  import  stat
 6 
 7  def  deleteSubFile(svnpath):
 8      names  =  os.listdir(svnpath)
 9       for  name  in  names:
10          
11          fp  =  os.path.join( svnpath, name)
12           if  (os.path.isfile(fp)):
13              os.chmod( fp, stat.S_IWRITE)
14              os.remove(fp)
15           else :
16              deleteSubFile(fp)
17              
18 
19  def  deleteSVN(parentPath  =  None, dir  =  None):
20       if  (dir  !=  None  and  dir  ==   ' .svn ' ):
21          deleteSubFile(os.path.join( parentPath, dir))
22          shutil.rmtree(os.path.join( parentPath, dir), True, False)
23           print   ' deleted  ' , os.path.join( parentPath, dir)
24       else :
25           if  (dir  !=  None):
26              filePath  =  os.path.join( parentPath, dir)
27           else :
28              filePath  =  parentPath
29          names  =  os.listdir(filePath)
30           for  name  in  names:
31              fp  =  os.path.join( filePath, name)
32               if  (os.path.isdir(fp)):
33                  deleteSVN(filePath, name)
34 
35 
36  if  len(sys.argv)  <   2 :
37       print   ' Usage: python % <file path> '   %  os.path.basename(sys.argv[0])
38      sys.exit( - 1 )
39 
40  if  os.path.isfile(sys.argv[ 1 ]):
41       print   ' 请选择文件夹, 而不是文件 '
42  else :
43      deleteSVN(parentPath  =  sys.argv[ 1 ])

 

 

其中实现功能的核心代码写得太过冗长,其实很简单的4行代码就能达到目的,如下:

 1 import os

2  for  (p,d,f)  in  os.walk( " 要删除的目录路径 " ):
3       if  p.find( ' .svn ' ) > 0:
4          os.popen( ' rd /s /q %s ' % p)

 

 

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值