python怎么拷贝文件夹

python

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 

Handler the Error: %s" %(path, excinfo)

if __name__ == '__main__':

 rootdir = r"E:workspaceminiofficemini-coresrcmainwebapp" # 需要处理的文件夹

 rootdir = unicode(rootdir, "utf8")

 dirname = ".svn" # 删除的文件夹

 c = DelDir(rootdir, dirname)

 c.run()

众多python教程,尽在网,欢迎在线学习!

以上是 python怎么拷贝文件夹 的全部内容, 来源链接: utcz.com/z/524471.html

回到顶部