简介
公司使用SVN维护代码资源,每次从SVN文件夹下拷贝东西,文件夹下都有.svn文件夹,这样每个文件夹和文件图标都有一些符号,影响查看文件类型,使用python脚本删除文件夹下所有的.svn文件。
运行环境:windows7+python3.4.4
代码
#! /windows
'''
File : CodeLine.py
Author : HCLAC
E-Mail : hclac@sina.com
'''
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):删除文件夹(只能是空文件)