文档章节

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()



© 著作权归作者所有

共有 人打赏支持
下一篇: Git笔记
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
Python知识点总结篇(三)

文件操作 对文件操作流程 - 打开文件,得到文件句柄并赋值给一个变量; - 通过句柄对文件进行操作; - 关闭文件; :自动关闭文件; 文件操作之 模式匹配与正则表达式 正则表达式:简称regex,...

村雨1943
10/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
10
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
16
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
15
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部