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

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

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


测试环境:

Python版本:Python3.3.2

Win7 64


代码实践

 

#!/usr/bin/env/ python
# -*- coding:utf-8 -*-

__author__ ='shouke'

importos
import  subprocess

# 复制文件或目录到指定目录(非自身目录)
defcopy_dir_or_file(src, dest):
   if notos.path.exists(dest):
       print('目标路径:%s不存在'% dest)
       return  [False,'目标路径:%s不存在'% dest]
   elif notos.path.isdir(dest):
       print('目标路径:%s不为目录'% dest)
       return   [False,'目标路径:%s不为目录'% dest]
   elifsrc.replace('/','\\').rstrip('\\') == dest.replace('/','\\').rstrip('\\'):
       print('源路径和目标路径相同,无需复制')
       return[True,'源路径和目标路径相同,不需要复制']

   if notos.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:
       withsubprocess.Popen(args,shell=True,universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)asproc:
           output = proc.communicate()
           print('复制文件操作输出:%s'%str(output))
           if notoutput[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])]
   exceptExceptionase:
       print('复制目标文件|目录(%s)到目标目录(%s)失败%s'% (src, dest, e))
       return  [False,'复制目标文件|目录(%s)到目标目录(%s)失败%s'% (src, dest, e)]

# 删除指定目录及其子目录下的所有子文件,不删除目录
defdelete_file(dirpath):
   if notos.path.exists(dirpath):
       print('要删除的目标路径:%s不存在'% dirpath)
       return  [False,'要删除的目标路径:%s不存在'% dirpath]
   elif notos.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:
       withsubprocess.Popen(args,shell=True,universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)asproc:
           output = proc.communicate()
           print('删除目标目录下的文件,操作输出:%s'%str(output))
           if notoutput[1]:
               print('删除目标目录(%s)下的文件成功'% dirpath)
               return[True,'删除成功']
           else:
               print('删除目标目录(%s)下的文件失败:%s'% (dirpath, output[1]))
               return[True,'删除目标目录(%s)下的文件失败:%s'% (dirpath, output[1])]
   exceptExceptionase:
       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')

 

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

 

目录
相关文章
|
16天前
|
Python
【python】python跨文件使用全局变量
【python】python跨文件使用全局变量
|
24天前
|
监控 数据处理 索引
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
21 1
|
29天前
|
存储 并行计算 Java
Python读取.nc文件的方法与技术详解
本文介绍了Python中读取.nc(NetCDF)文件的两种方法:使用netCDF4和xarray库。netCDF4库通过`Dataset`函数打开文件,`variables`属性获取变量,再通过字典键读取数据。xarray库利用`open_dataset`打开文件,直接通过变量名访问数据。文中还涉及性能优化,如分块读取、使用Dask进行并行计算以及仅加载所需变量。注意文件路径、变量命名和数据类型,读取后记得关闭文件(netCDF4需显式关闭)。随着科学数据的增长,掌握高效处理.nc文件的技能至关重要。
104 0
|
3天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
3天前
|
存储 Python
Python的结构
【4月更文挑战第15天】Python的结构
12 4
|
11天前
|
Python
Python控制结构学习应用案例详解
Python控制结构包含条件语句、循环语句和异常处理。条件语句用if-elif-else判断数字正负;for循环示例输出1到10的整数,while循环计算1到10的和;异常处理用try-except-finally处理除零错误,打印提示信息并结束。
9 3
|
16天前
|
C++ Python
【C++/Python】C++调用python文件
【C++/Python】C++调用python文件
|
16天前
|
JSON 数据处理 数据格式
Python中的文件读写操作详解
【4月更文挑战第2天】在Python中,文件读写操作是数据处理和程序开发的重要部分。通过文件,我们可以将信息持久化地保存在磁盘上,并在需要时读取和使用这些数据。Python提供了丰富的内置函数和模块,使得文件读写变得简单而高效。本文将详细介绍Python中文件读写的基本操作和常用方法。
|
28天前
|
开发者 Python
Python语言的文件及目录访问
Python语言的文件及目录访问
|
8月前
|
Python
Python | Python学习之深浅拷贝
Python | Python学习之深浅拷贝

热门文章

最新文章