易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Python递归删除.svn文件夹
import
os, stat;
root_dir = r
"X:XXXXXX"
;
def
walk(path):
for
item
in
os.listdir(path):
subpath = os.path.join(path, item);
mode = os.stat(subpath)[stat.ST_MODE];
if
stat.S_ISDIR(mode):
if
item==
".svn"
:
print
"Clean %s ..."
% subpath;
print
"%d deleted!"
% purge(subpath);
else
:
walk(subpath);
def
purge(path):
count = 0;
for
item
in
os.listdir(path):
subpath = os.path.join(path, item);
mode = os.stat(subpath)[stat.ST_MODE];
if
stat.S_ISDIR(mode):
count += purge(subpath);
else
:
os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE);
os.unlink(subpath);
count += 1;
os.rmdir(path);
count += 1;
return
count;
if
__name__==
"__main__"
:
walk(root_dir);
借鉴以上代码:
import
os, stat;
root_dir = r
"X:XXXX"
;
def
purge(path):
count = 0;
for
item
in
os.listdir(path):
subpath = os.path.join(path, item);
mode = os.stat(subpath)[stat.ST_MODE];
if
stat.S_ISDIR(mode):
count += purge(subpath);
else
:
os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE);
os.unlink(subpath);
count += 1;
os.rmdir(path);
count += 1;
return
count;
def
callback(arg, directory, files):
if
os.path.split(directory)[1]==
".svn"
:
print
directory;
#使用os.removedirs()删不掉
print
"Folder [%s](%d files) deleted."
% (directory, purge(directory));
print
"--------------------"
;
if
__name__==
"__main__"
:
print
"start"
;
os.path.walk(root_dir, callback, 0);
print
"complete."
;
第一种方法每次需要修改文件夹路径,进行了些修改
#!/usr/bin/python
# -*- coding: utf8 -*-
import
sys, os, stat
def
walk(path):
for
item
in
os.listdir(path):
subpath=os.path.join(path, item)
mode=os.stat(subpath)[stat.ST_MODE]
if
stat.S_ISDIR(mode):
if
item==
".svn"
:
print
"Cleaning %s ..."
% subpath
print
"%d deleted"
% purge(subpath)
else
:
walk(subpath)
def
purge(path):
count=0
for
item
in
os.listdir(path):
subpath=os.path.join(path, item)
mode=os.stat(subpath)[stat.ST_MODE]
if
stat.S_ISDIR(mode):
count+=purge(subpath)
else
:
os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE)
os.unlink(subpath)
count+=1
os.rmdir(path)
count+=1
return
count
if
len(sys.argv)!=2:
print
"Usage: python SVNClean.py path"
sys.exit(1)
walk(sys.argv[1])
方法三:
#coding=utf-8
import
os
import
shutil
import
sys
import
stat
def
deleteSubFile(svnpath):
names = os.listdir(svnpath)
for
name
in
names:
fp = os.path.join( svnpath, name)
if
(os.path.isfile(fp)):
os.chmod( fp, stat.S_IWRITE)
os.remove(fp)
else
:
deleteSubFile(fp)
def
deleteSVN(parentPath = None, dir = None):
if
(dir != None
and
dir ==
".svn"
):
deleteSubFile(os.path.join( parentPath, dir))
shutil.rmtree(os.path.join( parentPath, dir), True, False)
print
"deleted "
, os.path.join( parentPath, dir)
else
:
if
(dir != None):
filePath = os.path.join( parentPath, dir)
else
:
filePath = parentPath
names = os.listdir(filePath)
for
name
in
names:
fp = os.path.join( filePath, name)
if
(os.path.isdir(fp)):
deleteSVN(filePath, name)
if
len(sys.argv) < 2:
print
"Usage: python % <file path>"
% os.path.basename(sys.argv[0])
sys.exit(-1)
if
os.path.isfile(sys.argv[1]):
print
"请选择文件夹, 而不是文件"
else
:
deleteSVN(parentPath = sys.argv[1])
4行python代码,删除svn文件夹
import
os
for
(p,d,f)
in
os.walk(
"要删除的目录路径"
):
if
p.find(
".svn"
)>0:
os.popen(
"rd /s /q %s"
%p)
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图