• 技术文章 >常见问题 >Python常见问题

    python怎么拷贝文件夹

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-11-05 16:07:42原创3144

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

    众多python培训视频,尽在python学习网,欢迎在线学习!

    专题推荐:python 拷贝 文件夹
    上一篇:python怎么从小到大排列 下一篇:python怎么调用jar包

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网