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使用函数默认值实现函数静态变量的方法
Aug 18 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
浅析Python函数式编程
Oct 06 Python
Python删除n行后的其他行方法
Jan 28 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
python元组打包和解包过程详解
Aug 02 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
js window.event对象详尽解析
2009/02/17 Javascript
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
Python内置数据类型详解
2014/08/18 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
成品仓管员工作职责
2013/12/29 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
农村党员对照检查材料
2014/09/24 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
当幸福来敲门观后感
2015/06/01 职场文书