天天看點

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 檔案複制&按目錄樹結構拷貝&批量删除目錄及其子目錄下的檔案