python:刪除.svn文件

簡介

公司使用SVN維護代碼資源,每次從SVN文件夾下拷貝東西,文件夾下都有.svn文件夾,這樣每個文件夾和文件圖標都有一些符號,影響查看文件類型,使用python腳本刪除文件夾下所有的.svn文件。
運行環境:windows7+python3.4.4


代碼

#! /windows

'''
     File    : CodeLine.py
     Author  : HCLAC
     E-Mail  : [email protected]
'''

import os,sys
import stat

absolutPath = os.getcwd()

def DeleteSvnDir(delDirName):

    if os.path.isfile(delDirName):
        try :
            #print (delDirName)
            # 如果文件是隻讀類型,會彈出[WinError 5] 拒絕訪問,所以修改文件的類型
            os.chmod(delDirName, stat.S_IWRITE )
            os.remove(delDirName)
        except:
            pass
    elif os.path.isdir(delDirName):
        for item in os.listdir(delDirName):
            itemsrc = os.path.join(delDirName, item)
            DeleteSvnDir(itemsrc)
        try:
            os.rmdir(delDirName)
            #print (delDirName)
        except:
            #print (delDirName)
            pass       

def FindSvnDir(OrginPath):

     for root, dirs, fileNames in os.walk(OrginPath):

        for dirName in dirs:
            if dirName == ".svn":
                  delDirNameTemp = os.path.join(absolutPath, root)
                  delDirName = os.path.join(delDirNameTemp, dirName)
                  #print (delDirName)
                  DeleteSvnDir(delDirName)
            # 這裏不用遞歸調用函數,因爲os.walk函數就遞歸遍歷了所有文件和文件夾
            #else :
                #FindSvnDir(dirName)
#main
FindSvnDir(absolutPath)

代碼說明

  • os.chmod(delDirName, stat.S_IWRITE ):.svn文件夾下的文件和文件夾都是隻讀模式的,需要修改成讀寫模式。
  • os.remove(delDirName):刪除文件(只能刪除文件,不能刪除文件夾)。
  • os.path.isfile(delDirName):判斷是否文件類型。
  • os.path.isdir(delDirName):判斷是否是文件夾類型。
  • for item in os.listdir(delDirName):如果是文件夾,遍歷文件夾下的所有文件和文件夾。
  • os.rmdir(delDirName):刪除文件夾(只能是空文件)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章