首页 / 操作系统 / Linux / Python学习笔记-清除项目下SVN文件
主要是OS库等一些常用库的操作import os
import time
import statdef 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"
fileDir = "C:\Users\Administrator\Desktop\project"
clearSVN(fileDir)《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-06/103214.htm