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