Python实现文件复制删除
用python实现了一个小型的工具。其实只是简单地把debug目录下的配置文件复制到指定目录,把Release下的生成文件复制到同一指定,过滤掉不需要的文件夹(.svn),然后再往这个指定目录添加几个特定的文件。
这个是我的第一个python小程序。
下面就来看其代码的实现。
首先插入必要的库:
importos importos.path importshutil importtime,datetime
然后就是一大堆功能函数。第一个就是把某一目录下的所有文件复制到指定目录中:
defcopyFiles(sourceDir,targetDir): ifsourceDir.find(".svn")>0: return forfileinos.listdir(sourceDir): sourceFile=os.path.join(sourceDir,file) targetFile=os.path.join(targetDir,file) ifos.path.isfile(sourceFile): ifnotos.path.exists(targetDir): os.makedirs(targetDir) ifnotos.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()) ifos.path.isdir(sourceFile): First_Directory=False copyFiles(sourceFile,targetFile)
删除一级目录下的所有文件:
defremoveFileInFirstDir(targetDir): forfileinos.listdir(targetDir): targetFile=os.path.join(targetDir,file) ifos.path.isfile(targetFile): os.remove(targetFile)
复制一级目录下的所有文件到指定目录:
defcoverFiles(sourceDir,targetDir): forfileinos.listdir(sourceDir): sourceFile=os.path.join(sourceDir,file) targetFile=os.path.join(targetDir,file) #coverthefiles ifos.path.isfile(sourceFile): open(targetFile,"wb").write(open(sourceFile,"rb").read())
复制指定文件到目录:
defmoveFileto(sourceDir,targetDir):
shutil.copy(sourceDir,targetDir)
往指定目录写文本文件:
defwriteVersionInfo(targetDir): open(targetDir,"wb").write("Revison:")
返回当前的日期,以便在创建指定目录的时候用:
defgetCurTime(): nowTime=time.localtime() year=str(nowTime.tm_year) month=str(nowTime.tm_mon) iflen(month)<2: month='0'+month day=str(nowTime.tm_yday) iflen(day)<2: day='0'+day return(year+'-'+month+'-'+day)
然后就是主函数的实现了:
if__name__=="__main__": print"Start(S)orQuilt(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"allsucess" else: print"notthecorrectcommand"
感觉是果然简单,不过简单的原因是因为库函数丰富,语言基本特性的简单真没感觉出来。
我们再来看一个实例
本人一直用foobar2000作为音乐播放器,听歌时候把自己喜欢的歌都会特别添加到一个播放列表。
自己用iphone,同步歌曲的时候需要用到itunes,而itunes却没有我用foobar2000的精选播放列表呢~
本人只好定期把播放列表的mp3文件拷贝到一个目录,我用itunes只需同步这个目录即可
(顺便吐槽下itunes不好使,在后期我都直接用其他同步工具代替之)
播放列表是*.m3u格式的文本,用记事本打开可以看到mp3的绝对路径。
直接贴代码吧,写得比较仓促,各位将就参考下即可:
#coding=gbk importsys,shutil,os,string mp3List="F:\\MyDocuments\\mp3list\\默认精选.m3u" destDir="G:\\POP\\默认精选" defcpFile(srcPath): fileName=os.path.basename(srcPath) destPath=destDir+os.path.sep+fileName ifos.path.exists(srcPath)andnotos.path.exists(destPath): print'cp%s%s'%(srcPath,destPath) shutil.copy(srcPath,destPath) if__name__=='__main__': f=file(mp3List,'r') lists=f.readlines() foriinlists: cpFile(string.strip(i)) f.close()