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')

 

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

 

目录
相关文章
|
13天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
18天前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
32 1
Python实用记录(十三):python脚本打包exe文件并运行
|
1天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
7 3
|
11天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
12天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
18天前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
29 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
7天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
1天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
6天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
26 9
|
2天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第24天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实际的项目应用。我们将一起探索Python的强大功能和灵活性,无论你是编程新手还是有经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的奇妙之旅吧!