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 相关文章推荐
spyder常用快捷键(分享)
Jul 19 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
基于django传递数据到后端的例子
Aug 16 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
深入浅析Django MTV模式
Sep 04 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php单例模式实现方法分析
2015/03/14 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
浅析使用Python操作文件
2017/07/31 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
python实现快递价格查询系统
2020/03/03 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python爬取代理ip的示例
2020/12/18 Python
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
签约仪式主持词
2014/03/19 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
财务会计专业自荐书
2014/06/30 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
国王的演讲观后感
2015/06/03 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP