[Python] python编写的linux下使用的xcopy代码 →→→→→进入此内容的聊天室

来自 , 2019-10-02, 写在 Python, 查看 211 次.
URL http://www.code666.cn/view/edc27f13
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. """
  5. xcopy for Linux...
  6.  
  7. Use:
  8. ______________________________________________________________________________
  9. import sys, os
  10.  
  11. sys.path.insert(0,r"/path/to/LinuxXCopy")
  12.  
  13. from LinuxXCopy import XCopy
  14.  
  15. filters = ["*.py"]
  16.  
  17. xc = XCopy(os.getcwd(), "/tmp/test", filters)
  18. ______________________________________________________________________________
  19. """
  20.  
  21. __author__  = "Jens Diemer"
  22. __license__ = """GNU General Public License v2 or above -
  23. http://www.opensource.org/licenses/gpl-license.php"""
  24. __url__     = "http://www.jensdiemer.de"
  25.  
  26. __info__    = ""
  27.  
  28. __version__="0.1"
  29.  
  30. __history__="""
  31. v0.1
  32.    - erste Version
  33. """
  34.  
  35.  
  36. import os, shutil, fnmatch
  37.  
  38. class XCopy:
  39.     def __init__(self, src, dst, filters=[]):
  40.         self.filters = filters
  41.  
  42.         self.copytree(src, dst)
  43.  
  44.     def copytree(self, src, dst):
  45.         """
  46.        Based in shutil.copytree()
  47.        """
  48.         names = os.listdir(src)
  49.         if not os.path.isdir(dst):
  50.             os.makedirs(dst)
  51.         errors = []
  52.         for name in names:
  53.             srcname = os.path.join(src, name)
  54.             dstname = os.path.join(dst, name)
  55.  
  56.             if os.path.isdir(srcname):
  57.                 self.copytree(srcname, dstname)
  58.             elif os.path.isfile(srcname):
  59.                 if self.filterName(name):
  60.                     print "copy:", name, dstname
  61.                     shutil.copy2(srcname, dstname)
  62.  
  63.         shutil.copystat(src, dst)
  64.  
  65.     def filterName(self, fileName):
  66.         for filter in self.filters:
  67.             if fnmatch.fnmatch(fileName, filter):
  68.                 return True
  69.         return False
  70. #//python/5248

回复 "python编写的linux下使用的xcopy代码"

这儿你可以回复上面这条便签

captcha