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 相关文章推荐
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
python编程线性回归代码示例
Dec 07 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
python3射线法判断点是否在多边形内
Jun 28 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
python中68个内置函数的总结与介绍
Feb 24 Python
pandas分批读取大数据集教程
Jun 06 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
Python的logging模块基本用法
Dec 24 Python
python numpy中setdiff1d的用法说明
Apr 22 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中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
php集成开发环境详解
2019/09/24 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python+tkinter实现学生管理系统
2019/08/20 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Django配置跨域并开发测试接口
2020/11/04 Python
python切割图片的示例
2020/11/12 Python
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
初中政治教学反思
2014/01/17 职场文书
五一手机促销方案
2014/03/08 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
企业宣传语大全
2015/07/13 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
windows系统搭建WEB服务器详细教程
2022/08/05 Servers