初学Python,为熟悉文件相关操作,写了一个简单且粗糙的清除项目下svn文件功能。
import os
import time
import stat
def clearSVN(destPath):
if os.path.isdir(destPath) == False :
return;
else :
destFileName = os.path.basename(destPath)
print 'current dir name is %s' %destFileName
if str(destFileName).find('svn') == -1 :
print '%s is not svn file' %destFileName
for fDir in os.listdir(destPath) :
clearSVN(os.path.join(destPath, fDir))
else :
print '%s is svn file' %destFileName
os.chmod(destPath, stat.S_IMODE(os.stat(destPath)[stat.ST_MODE]) | stat.S_IREAD|stat.S_IWRITE)
for root, dirs, files in os.walk(destPath, topdown=False):
for fileN in files:
try :
f = os.path.join(root, fileN);
os.chmod(f, stat.S_IMODE(os.stat(f)[stat.ST_MODE]) | stat.S_IREAD|stat.S_IWRITE)
os.remove(f)
except OSError as e:
print f + 'remove error' + e.message
finally :
if os.path.exists(f) :
os.system('del ' + f + ' /f /q')
for dirN in dirs:
print 'dirName is %s' %dirN
try :
print 'root is %s' %root
os.chmod(root, stat.S_IMODE(os.stat(root)[stat.ST_MODE]) | stat.S_IREAD|stat.S_IWRITE)
os.rmdir(root)
except OSError as e:
print root + 'remove error' + e.message
finally :
if os.path.exists(root) :
os.system('del ' + root + ' /f /q')
def search(destPath, destFile):
if os.path.isdir(destPath) == False or os.path.isfile(destFile) == False :
return
for destF in os.listdir(destPath):
if os.path.isfile(destF) and destF == os.path.basename(destFile) :
return os.path.join(destPath, destF)
elif os.path.isdir(destF) :
search(os.path.join(destPath, destF), destFile)
else :
print 'can not find file %s' %destFile
return None
def iteratorHandle(srcPath, destPath, isNew = False):
if os.path.isfile(srcPath) :
destFile = search(destPath, srcPath)
if destFile == None :
if isNew == False :
if os.path.isfile(srcPath) :
try :
os.chmod(srcPath, stat.S_IMODE(os.stat(srcPath)[stat.ST_MODE]) | stat.S_IREAD|stat.S_IWRITE)
os.remove(srcPath)
finally :
os.system('del ' + srcPath + ' /F')
else :
print 'new file to add'
else :
newFileMT = time.localtime(os.stat(destFile).st_mtime)
oldFileMT = time.localtime(os.stat(srcPath).st_mtime)
if time.mktime(newFileMT) - time.mktime(oldFileMT) > 0 :
oldFileDir = str(srcPath)[0:str(srcPath).rfind(os.path.sep)]
oldFileName = os.path.basename(srcPath)
oldFilenewName = str(srcPath)[0 : str(srcPath).rfind('.')] + '_backup' + str(srcPath)[str(srcPath).rfind('.') : ]
os.rename(srcPath, os.path.join(oldFileDir, oldFilenewName))
open(os.path.join(oldFileDir, oldFileName), "wb").write(open(destFile, "rb").read())
elif os.path.isdir(srcPath) :
for destFile in os.listdir(srcPath) :
iteratorHandle(os.path.join(srcPath, destFile))
else :
print 'iterator handle error'
def handle(srcPath, destPath):
if os.path.isdir(srcPath) == False or os.path.isdir(destPath):
return
clearSVN(srcPath)
clearSVN(destPath)
fileDir = 'C:\\Users\\Administrator\\Desktop\\project'
clearSVN(fileDir)
分享到:
相关推荐
python 实现svn的代码下载,解决了请求认证,字符编码,地址长度问题。非常不错的例子。
指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...
使用python调用svn命令行,完成对svn工作目录的自动清理,自动完成解决冲突和恢复版本。使用subprocess,适用于windows和mac os。 使用方法:python jtcleansvn.py workingspacepath
svn两个版本之间改动的文件列表 包括新增和更新的文件 用PYTHON写的脚本
用python写的复制文件,调用svn命令上传文件的代码块
本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!
可以快速的清除所有的.SVN文件 可以快速的清除所有的.SVN文件
清除svn文件的小软件,只需将该批处理文件放在含有svn文件夹中,双击运行,即可删除不需要的svn文件。
使用python语言获取svn每个版本的详细Log信息便于分析
用于删除svn文件,简单易用,注释详细,适合初学者学习。
clearSVN,轻松快速清楚svn文件
清除svn文件 11
可以清除项目中所有svn的文件,便于再次使用,自己搞的小工具。可以简单修改尝试清除其他文件。 可以清除项目中所有svn的文件,便于再次使用,自己搞的小工具。可以简单修改尝试清除其他文件。
此段代码作用是删除svn工具下的.svn文件夹
SVN变化发送邮件(Python实现) 实现了svn一但有变化将发送邮件
快速删除.svn文件,下载之后双击运行,添加到注册表中,确认添加,之后右键想要清除.svn的父文件夹目录,找到Delete SVN Folders,kill..kill..kill
用来删除SVN文件用来删除SVN文件用来删除SVN文件用来删除SVN文件
1.svn提交过程中出现错误的时候,可以使用这个文件进行对svn文件的删除 2. 需要双击运行,注册表 3.成功之后,文件夹右键可以看到 delete SVN Folders 祝大家使用顺利
清除.svn残余文件工具,解压后根目录运行即可,方便好用。
批量删除svn 文件的 批处理文件,有效删除svn文件,快速删除!