Python复制文件操作实例详解


Posted in Python onNovember 10, 2015

本文实例讲述了Python复制文件操作用法。分享给大家供大家参考,具体如下:

这里用python实现了一个小型的自动发版本的工具。这个“自动发版本”有点虚, 只是简单地把debug 目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。

这个是我的第一个python小程序。

下面就来看其代码的实现。

首先插入必要的库:

import os 
import os.path 
import shutil 
import time, datetime

然后就是一大堆功能函数。第一个就是把某一目录下的所有文件复制到指定目录中:

def copyFiles(sourceDir, targetDir): 
   if sourceDir.find(".svn") > 0: 
     return 
   for file in os.listdir(sourceDir): 
     sourceFile = os.path.join(sourceDir, file) 
     targetFile = os.path.join(targetDir, file) 
     if os.path.isfile(sourceFile): 
       if not os.path.exists(targetDir): 
         os.makedirs(targetDir) 
       if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))): 
           open(targetFile, "wb").write(open(sourceFile, "rb").read()) 
     if os.path.isdir(sourceFile): 
       First_Directory = False 
       copyFiles(sourceFile, targetFile)

删除一级目录下的所有文件:

def removeFileInFirstDir(targetDir): 
   for file in os.listdir(targetDir): 
     targetFile = os.path.join(targetDir, file) 
     if os.path.isfile(targetFile): 
       os.remove(targetFile)

复制一级目录下的所有文件到指定目录:

def coverFiles(sourceDir, targetDir): 
     for file in os.listdir(sourceDir): 
       sourceFile = os.path.join(sourceDir, file) 
       targetFile = os.path.join(targetDir, file) 
       #cover the files 
       if os.path.isfile(sourceFile): 
         open(targetFile, "wb").write(open(sourceFile, "rb").read())

复制指定文件到目录:

def moveFileto(sourceDir, targetDir): 
  shutil.copy(sourceDir, targetDir)

往指定目录写文本文件:

def writeVersionInfo(targetDir): 
  open(targetDir, "wb").write("Revison:")

返回当前的日期,以便在创建指定目录的时候用:

def getCurTime(): 
   nowTime = time.localtime() 
   year = str(nowTime.tm_year) 
   month = str(nowTime.tm_mon) 
   if len(month) < 2: 
     month = '0' + month 
   day = str(nowTime.tm_yday) 
   if len(day) < 2: 
     day = '0' + day 
   return (year + '-' + month + '-' + day)

然后就是主函数的实现了:

if __name__ =="__main__": 
   print "Start(S) or Quilt(Q) \n" 
   flag = True 
   while (flag): 
     answer = raw_input() 
     if 'Q' == answer: 
       flag = False 
     elif 'S'== answer : 
       formatTime = getCurTime() 
       targetFoldername = "Build " + formatTime + "-01" 
       Target_File_Path += targetFoldername
       copyFiles(Debug_File_Path,  Target_File_Path) 
       removeFileInFirstDir(Target_File_Path) 
       coverFiles(Release_File_Path, Target_File_Path) 
       moveFileto(Firebird_File_Path, Target_File_Path) 
       moveFileto(AssistantGui_File_Path, Target_File_Path) 
       writeVersionInfo(Target_File_Path+"\\ReadMe.txt") 
       print "all sucess" 
     else: 
       print "not the correct command"

希望本文所述对大家python程序设计有所帮助。

Python 相关文章推荐
python中wx将图标显示在右下角的脚本代码
Mar 08 Python
深入讲解Python编程中的字符串
Oct 14 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
python模拟实现分发扑克牌
Apr 22 Python
Python request使用方法及问题总结
Apr 26 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
Pytest中skip skipif跳过用例详解
Jun 30 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 #Python
Python 文件管理实例详解
Nov 10 #Python
Python list操作用法总结
Nov 10 #Python
python控制台中实现进度条功能
Nov 10 #Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 #Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 #Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 #Python
You might like
4.与数据库的连接
2006/10/09 PHP
基于mysql的bbs设计(四)
2006/10/09 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python发布模块的步骤分享
2014/02/21 Python
Python实现新浪博客备份的方法
2016/04/27 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python中作用域的深入讲解
2018/12/10 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
python实现移动木板小游戏
2020/10/09 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
如何提高SQL Server的安全性
2016/07/25 面试题
优质的学校老师推荐信
2013/10/28 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
考博专家推荐信
2014/05/10 职场文书
辛亥革命观后感
2015/06/02 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
资产移交协议书
2016/03/24 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python
python微信智能AI机器人实现多种支付方式
2022/04/12 Python