文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件

by:授客 QQ:1033553122

测试环境:

Python版本:Python 3.3.2

Win7 64


代码实践


#!/usr/bin/env/ python

#
-*- coding:utf-8 -*-


__author__
=
'shouke'


import

os
import
 
subprocess

#
复制文件或目录到指定目录(非自身目录)

def

copy_dir_or_file(src, dest):
    if
not

os.path.exists(dest):
        print('目标路径:%s
不存在'

% dest)
        return
 
[False,

'目标路径:%s
不存在'

% dest]
    elif
not

os.path.isdir(dest):
        print('目标路径:%s
不为目录'

% dest)
        return
  
[False,

'目标路径:%s
不为目录'

% dest]
    elif

src.replace('/',

'
\\').rstrip('\\')
== dest.replace('/',

'
\\').rstrip('\\'):
        print('源路径和目标路径相同,无需复制')
        return

[True,'源路径和目标路径相同,不需要复制']

if
not

os.path.exists(src):
        print('源路径:%s
不存在'

% src)
        return
 
[False,

'源路径:%s
不存在'

% src]

#
/E 复制目录和子目录,包括空的 /Y 无需确认,自动覆盖已有文件

    args
=
'xcopy /YE '

+ os.path.normpath(src) +
' '

+ os.path.normpath(dest)
# 注意:xcopy不支持 d:/xxx,只支持 d:\xxxx,所以要转换

    try:
        with

subprocess.Popen(args,
shell=True,

universal_newlines
=
True
,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE)

as

proc:
            output
= proc.communicate()
            print('复制文件操作输出:%s'

%
str(output))
            if
not

output[1]:
                print('复制目标文件|目录(%s)
到目标目录(%s)成功'

% (src, dest))
                return

[True,'复制成功']
            else:
                print('复制目标文件|目录(%s)
到目标目录(%s)失败:%s'

% (src, dest, output[1]))
                return
 
[False,'复制目标文件|目录(%s)
到目标目录(%s)失败:%s'

% (src, dest, output[1])]
    except

Exception
as

e:
        print('复制目标文件|目录(%s)
到目标目录(%s)失败 %s'

% (src, dest, e))
        return
 
[False,

'复制目标文件|目录(%s) 到目标目录(%s)失败 %s'

% (src, dest, e)]

#
删除指定目录及其子目录下的所有子文件,不删除目录

def

delete_file(dirpath):
    if
not

os.path.exists(dirpath):
        print('要删除的目标路径:%s
不存在'

% dirpath)
        return
 
[False,

'要删除的目标路径:%s
不存在'

% dirpath]
    elif
not

os.path.isdir(dirpath):
        print('要删除的目标路径:%s
不为目录'

% dirpath)
        return
  
[False,

'要删除的目标路径:%s
不为目录'

% dirpath]

#
注意:同xcopy命令,del也不支持 d:/xxxx,Linux/Unix路径的写法,只支持d:\xxx
windows路径的写法

    args
=
'del /F/S/Q '

+ os.path.normpath(dirpath)
 #
/F 强制删除只读文件。 /S
删除所有子目录中的指定的文件。 /Q 安静模式。删除前,不要求确认

    try:
        with

subprocess.Popen(args,
shell=True,

universal_newlines
=
True
,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE)

as

proc:
            output
= proc.communicate()
            print('删除目标目录下的文件,操作输出:%s'

%
str(output))
            if
not

output[1]:
                print('删除目标目录(%s)下的文件成功'

% dirpath)
                return

[True,'删除成功']
            else:
                print('删除目标目录(%s)下的文件失败:%s'

% (dirpath, output[1]))
                return

[True,'删除目标目录(%s)下的文件失败:%s'

% (dirpath, output[1])]
    except

Exception
as

e:
        print('删除目标目录(%s)下的文失败:%s'

% (dirpath,e))
        return
 
[False,

'删除目标目录(%s)下的文失败:%s'

% (dirpath,e)]

if

__name__ ==
'__main__'
:
    copy_dir_or_file('D:\svn\myfolder\base'.replace('\b',

'/b'
),'D:\svn\myfolder\dirname')

delete_file('D:\svn\myfolder\dirname\V8.3')


注意:不支持把目录及其子文件复制到其子目录


 


 

Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件的更多相关文章

  1. python递归列出目录及其子目录下所有文件

    python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...

  2. linux下删除目录及其子目录下某种类型文件

    Linux下,如果想要删除目录及其子目录下某种类型文件,比如说所有的txt文件,则可以使用下面的命令: find . -name "*.txt" -type f -print -e ...

  3. python实现复制整个目录的方法

    import shutil #复制文件 shutil.copyfile('listfile.py', 'd:/test.py') #复制目录 shutil.copytree('d:/temp', 'c ...

  4. pthon 批量压缩当前目录,子目录下图片

    需求 经常可能有需要压缩图片的需求. 但是一些批量处理图片的软件又仅仅支持压缩一个目录下的图片, 所以写下了这个图片处理程序: 需要安装: python 2.x Image模块 特点: 压缩当前目录, ...

  5. python查找目录及子目录下特定文件

    写这篇博客的缘由: 面试归来翻脉脉发现一个陌生的朋友提出一个面试题,设计实现遍历目录及子目录,抓取.pyc文件. 并贴出两种实现方法: 个人感觉,这两种方法中规中矩,不像是python的风格.pyth ...

  6. Python——用os模块寻找指定目录(包括子目录)下所有图片文件

    import os # 导入os模块 def search_file(start_dir): img_list = [] extend_name = ['.jpg', '.png', '.gif'] ...

  7. python 指定文件夹下所有文件(包括子目录下的文件)拷贝到目标文件夹下

    #!/usr/bin/env python3 # -*- coding:utf8 -*- # @TIME :2018/9/17 9:02 # @Author:dazhan # @File :copyf ...

  8. 复制目录及其子目录下所有文件DOC

    echo 开始同步代码 set src_home=F:\work\sign\Bonade-Sign set dest_home=F:\work\testGit\sign5\Bonade-Sign se ...

  9. python 列出出当前目录及所有子目录下的文件

    [root@web1 test]# cat walk.py #!/usr/bin/python # -*- coding: UTF-8 -*- import os for root, dirs, fi ...

随机推荐

  1. db2 报错 sqlcode=-420 自动类型转换的问题

    今天在测试遇到一个问题,前台点击页面查询数据时报错: , SQLSTATE, SQLERRMC=DECFLOAT, DRIVER=4.18.60 根据sqlcode查询错误原因为:-420 22018 ...

  2. 基于Alpha-Beta剪枝的欢乐斗地主残局辅助

    2019年4月17日更新: 将搜索主函数优化为局部记忆化搜索,再次提高若干倍搜索速度 更新了main和player,helper无更新 #include "Player-v3.0.cpp&q ...

  3. Xamarin.Android 制作搜索框

    前段时间仿QQ做了一个搜索框样式,个人认为还不错,留在这里给大家做个参考,希望能帮助到有需要的人. 首先上截图(图1:项目中的样式,图2:demo样式): 不多说直接上代码: Main.axml &l ...

  4. Linux下安装、启动、停止mongodb

    1.下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) curl .tgz # 下载 tar .tgz # 解压 mv mongodb/ /usr/local/mongodb ...

  5. 激活IDEA方法

    1.需要一个jar包,在 http://idea.lanyus.com/  下载 2.将jar拷贝到idea安装目录 3.复制jar包路径   到如下图两个文件中 例:-javaagent:C:\Ap ...

  6. Xamarin.Android 嵌入web端界面

    在程序中嵌入Web端界面. 首先在前台界面上创建一个webview <android.webkit.WebView android:layout_width="match_parent ...

  7. jquery获取radio选中值及遍历

    使用jquery获取radio的值,最重要的是掌握jquery选择器的使用,在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来筛选,比如有以下的一些radio项:1.& ...

  8. Linux编程 20 shell编程(shell脚本创建,echo显示信息)

    一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1    使用多个命令 Shell ...

  9. 全网最详细的一款满足多台电脑共用一个鼠标和键盘的工具Synergy(图文详解)

    不多说,直接上干货! 前言 如今无论你是在公司做大数据开发还是实验室里搞科研,这个软件确实好用,作为正在通往大数据架构师路上的我们没有几台电脑怎么行?台式机.笔记本,都放在写字台上,笔记本内置键盘鼠标 ...

  10. MySQL联合索引VS单列索引

    MySQL联合索引VS单列索引 以一个一千万数据量的表格为例 1. 建表建索引 USE foo; DROP TABLE IF EXISTS tmp; CREATE TABLE tmp ( id INT ...