天天看点

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

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

by:授客 QQ:1033553122

测试环境:

Python版本:Python 3.3.2

Win7 64

代码实践

#!/usr/bin/env/ python

#

-*- coding:utf-8 -*-

__author__

=

'shouke'

import

os

 subprocess

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

def

copy_dir_or_file(src, dest):

    if

not

os.path.exists(dest):

        print('目标路径:%s

不存在'

% dest)

        return

 [False,

'目标路径:%s

% dest]

    elif

os.path.isdir(dest):

不为目录'

  [False,

src.replace('/',

'\\').rstrip('\\')

== dest.replace('/',

'\\').rstrip('\\'):

        print('源路径和目标路径相同,无需复制')

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

os.path.exists(src):

        print('源路径:%s

% src)

'源路径:%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

output[1]:

                print('复制目标文件|目录(%s)

到目标目录(%s)成功'

% (src, dest))

                return

[True,'复制成功']

            else:

到目标目录(%s)失败:%s'

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

 [False,'复制目标文件|目录(%s)

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

    except

Exception

e:

        print('复制目标文件|目录(%s)

到目标目录(%s)失败 %s'

% (src, dest, e))

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

% (src, dest, e)]

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

delete_file(dirpath):

os.path.exists(dirpath):

        print('要删除的目标路径:%s

% dirpath)

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

% dirpath]

os.path.isdir(dirpath):

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

windows路径的写法

'del /F/S/Q '

+ os.path.normpath(dirpath)

 #

/F 强制删除只读文件。 /S

删除所有子目录中的指定的文件。 /Q 安静模式。删除前,不要求确认

            print('删除目标目录下的文件,操作输出:%s'

                print('删除目标目录(%s)下的文件成功'

[True,'删除成功']

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

% (dirpath, output[1]))

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

% (dirpath, output[1])]

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

% (dirpath,e))

'删除目标目录(%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')

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

作者:授客

QQ:1033553122

全国软件测试QQ交流群:7156436

Git地址:https://gitee.com/ishouke

友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!

作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!

           微信打赏                       

支付宝打赏                  全国软件测试交流QQ群  

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