文档章节

Python拷贝/删除文件夹

dexterman
 dexterman
发布于 2013/10/29 09:30
字数 333
阅读 319
收藏 0

环境:Python 2.7, Win7 64bit

1. 拷贝文件夹

from shutil import copytree, ignore_patterns
copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))

注:shutil.copytree实现

def copytree(src, dst, symlinks=False, ignore=None):
    names = os.listdir(src)
    if ignore is not None:
        ignored_names = ignore(src, names)
    else:
        ignored_names = set()

    os.makedirs(dst)
    errors = []
    for name in names:
        if name in ignored_names:
            continue
        srcname = os.path.join(src, name)
        dstname = os.path.join(dst, name)
        try:
            if symlinks and os.path.islink(srcname):
                linkto = os.readlink(srcname)
                os.symlink(linkto, dstname)
            elif os.path.isdir(srcname):
                copytree(srcname, dstname, symlinks, ignore)
            else:
                copy2(srcname, dstname)
            # XXX What about devices, sockets etc.?
        except (IOError, os.error) as why:
            errors.append((srcname, dstname, str(why)))
        # catch the Error from the recursive copytree so that we can
        # continue with other files
        except Error as err:
            errors.extend(err.args[0])
    try:
        copystat(src, dst)
    except WindowsError:
        # can't copy file access times on Windows
        pass
    except OSError as why:
        errors.extend((src, dst, str(why)))
    if errors:
        raise Error(errors)


2. 删除文件夹

#! /usr/bash/python
# encoding:utf-8

import os
import os.path
import stat
import shutil

class DelDir:
	''' 删除指定根目录下特定文件夹 '''
	def __init__(self, root, dirname):
		self.root = root
		self.dirname = dirname

	def run(self):
		for r, dirs, files in os.walk(self.root):
			if self.dirname in dirs:
				srcDir = os.path.join(r, self.dirname)
				#更改权限(win7会出现权限问题)
				os.chmod(srcDir, stat.S_IREAD | stat.S_IWRITE)
				result = shutil.rmtree(srcDir, False, self.__handler)
				print  "%s" %(srcDir)

	def __handler(self, function, path, excinfo):
		''' 删除出错处理 '''
		#更改权限(win7会出现权限问题)
		os.chmod(path, stat.S_IREAD | stat.S_IWRITE)
		function(path)
		print "[Handler] ==> Path:%s  \n\tHandler the Error: %s" %(path, excinfo)

if __name__ == '__main__':
	rootdir = r"E:\workspace\minioffice\mini-core\src\main\webapp" # 需要处理的文件夹
	rootdir = unicode(rootdir, "utf8")
	dirname = ".svn" # 删除的文件夹
	c = DelDir(rootdir, dirname)
	c.run()



© 著作权归作者所有

共有 人打赏支持
dexterman
粉丝 5
博文 32
码字总数 11697
作品 0
广州
程序员
Python基础班每日整理(一)

01_Linux基础 1.操作系统的作用? 操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好硬件设备。 2.Linux中根目录和家目录分别用什么表示? /表示根目录、~表示家目录 3.Linux中相...

我是小谷粒
06/28
0
0
python——虚拟环境之virtualenv(windows10,64位)

1 问题   当我们拥有两个甚至多个项目A、B、C......,各个项目正常运行需求的python运行环境都不相同。而默认情况下,不管哪个项目,使用的都是全局的Python环境。上述情况,造成的问题就是...

翠竹09
08/10
0
0
不要bjam了,让python与boost更加自由的混搭

[我下的是1.51] 流水的记录下这两天折腾boost/MinGW环境的过程[注意用标准的cmd,不要用msys] 1.编译bjam: 到toolsbuildv2engine目录下,输入build mingw, 这会在toolsbuildv2enginebin.ntx86...

dameng
2012/09/17
0
0
创建Python2和Python3的虚拟环境

一、windows上安装 1.安装python 分别安装了Python2和Python3 python3.7默认安装目录 安装目录里的python.exe,pip.py自定是否修改 2.安装virtualenv和virtualenvwrapper-win 3.修改虚拟环境 ...

xiaoge2016
07/30
0
2
Python3好用的原生api

读取特定目录下所有的文件夹, 和文件名 os.walk("./")是我最喜欢的api之一, 作用是获取某个路径下,所有的文件夹和文件的路径, 如果你是一个喜欢写脚本的人, 那这个api或许能帮你更优雅的实现...

木子昭
07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
4
0
现场看路演了!

HiBlock
昨天
8
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
7
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
9
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部