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简单生成随机数的方法示例
Mar 31 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
python3实现逐字输出的方法
Jan 23 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
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
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jquery中动态效果小结
2010/12/16 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
OpenCV实现人脸识别
2017/04/07 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
亲属关系公证书
2014/04/08 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
2015年检验科工作总结
2015/04/27 职场文书
员工工作心得体会
2019/05/07 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
nginx location优先级的深入讲解
2021/03/31 Servers
mysql查询的控制语句图文详解
2021/04/11 MySQL
react antd实现动态增减表单
2021/06/03 Javascript