簡介
公司使用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):刪除文件夾(只能是空文件)