歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python學習筆記-清除項目下SVN文件

主要是OS庫等一些常用庫的操作

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'
       
   
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.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved