Python实现文件复制删除


Posted in Python onApril 19, 2016

 用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"

    感觉是果然简单, 不过简单的原因是因为库函数丰富,语言基本特性的简单真没感觉出来。

我们再来看一个实例

本人一直用foobar2000作为音乐播放器,听歌时候把自己喜欢的歌都会特别添加到一个播放列表。

自己用iphone,同步歌曲的时候需要用到itunes,而itunes却没有我用foobar2000的精选播放列表呢~

本人只好定期把播放列表的mp3文件拷贝到一个目录,我用itunes只需同步这个目录即可
(顺便吐槽下itunes不好使,在后期我都直接用其他同步工具代替之)

播放列表是*.m3u格式的文本,用记事本打开可以看到mp3的绝对路径。

直接贴代码吧,写得比较仓促,各位将就参考下即可:

#coding=gbk  
import sys, shutil, os, string 
mp3List = "F:\\My Documents\\mp3list\\默认精选.m3u" 
destDir = "G:\\POP\\默认精选" 
 
def cpFile(srcPath): 
  fileName = os.path.basename(srcPath) 
  destPath = destDir + os.path.sep + fileName 
  if os.path.exists(srcPath) and not os.path.exists(destPath): 
    print 'cp %s %s' % (srcPath,destPath) 
    shutil.copy(srcPath,destPath) 
 
if __name__ == '__main__': 
  f = file(mp3List, 'r') 
  lists = f.readlines() 
  for i in lists: 
    cpFile(string.strip(i)) 
     
  f.close()
Python 相关文章推荐
python实现的登录和操作开心网脚本分享
Jul 09 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
django celery redis使用具体实践
Apr 08 Python
深入解析神经网络从原理到实现
Jul 26 Python
Python jieba库用法及实例解析
Nov 04 Python
python线程信号量semaphore使用解析
Nov 30 Python
QML用PathView实现轮播图
Jun 03 Python
python自动化调用百度api解决验证码
Apr 13 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 Python
利用Python获取赶集网招聘信息前篇
Apr 18 #Python
Python Sql数据库增删改查操作简单封装
Apr 18 #Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 #Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 #Python
python动态加载包的方法小结
Apr 18 #Python
python实现按行切分文本文件的方法
Apr 18 #Python
Python获取linux主机ip的简单实现方法
Apr 18 #Python
You might like
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python深入06——python的内存管理详解
2016/12/07 Python
python @property的用法及含义全面解析
2018/02/01 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
linux面试题参考答案(6)
2014/08/29 面试题
自荐信范文
2013/12/10 职场文书
球队口号
2014/06/18 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书