各位用户为了找寻关于python实现linux下使用xcopy的方法的资料费劲了很多周折。这里教程网为您整理了关于python实现linux下使用xcopy的方法的相关资料,仅供查阅,以下为您介绍关于python实现linux下使用xcopy的方法的详细内容
本文实例讲述了python实现linux下使用xcopy的方法。分享给大家供大家参考。具体如下:
这个python函数模仿windows下的xcopy命令编写,可以用在linux下
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
xcopy for Linux...
Use:
______________________________________________________________________________
import sys, os
sys.path.insert(0,r"/path/to/LinuxXCopy")
from LinuxXCopy import XCopy
filters = ["*.py"]
xc = XCopy(os.getcwd(), "/tmp/test", filters)
______________________________________________________________________________
"""
__author__
=
"Jens Diemer"
__license__
=
"""GNU General Public License v2 or above -
http://www.opensource.org/licenses/gpl-license.php"""
__url__
=
"http://www.jensdiemer.de"
__info__
=
""
__version__
=
"0.1"
__history__
=
"""
v0.1
- erste Version
"""
import
os, shutil, fnmatch
class
XCopy:
def
__init__(
self
, src, dst, filters
=
[]):
self
.filters
=
filters
self
.copytree(src, dst)
def
copytree(
self
, src, dst):
"""
Based in shutil.copytree()
"""
names
=
os.listdir(src)
if
not
os.path.isdir(dst):
os.makedirs(dst)
errors
=
[]
for
name
in
names:
srcname
=
os.path.join(src, name)
dstname
=
os.path.join(dst, name)
if
os.path.isdir(srcname):
self
.copytree(srcname, dstname)
elif
os.path.isfile(srcname):
if
self
.filterName(name):
print
"copy:"
, name, dstname
shutil.copy2(srcname, dstname)
shutil.copystat(src, dst)
def
filterName(
self
, fileName):
for
filter
in
self
.filters:
if
fnmatch.fnmatch(fileName,
filter
):
return
True
return
False
希望本文所述对大家的Python程序设计有所帮助。