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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
基于Python的PIL库学习详解
May 10 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
Python如何测试stdout输出
Aug 10 Python
python中如何打包用户自定义模块
Sep 23 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
python开发飞机大战游戏
Jul 15 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截取字符串函数分享
2015/02/02 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
Python描述器descriptor详解
2015/02/03 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
利用python画出折线图
2018/07/26 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
Farah官方网站:男士服装及配件
2019/11/01 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
北京某公司的.net笔试题
2014/03/20 面试题
美术毕业生求职信
2014/02/25 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
2014组织生活会方案
2014/05/19 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
信仰心得体会
2014/09/05 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
旅游投诉信范文
2015/07/02 职场文书
安全生产感想
2015/08/07 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
MySQL查询学习之基础查询操作
2021/05/08 MySQL