Python 实现文件复制、删除

import os  

import shutil  

filelist=[]  

rootdir="/home/zoer/aaa"  

filelist=os.listdir(rootdir)  

for f in filelist:  

filepath = os.path.join( rootdir, f )  

    if os.path.isfile(filepath):  

        os.remove(filepath)  

        print filepath+" removed!"  

    elif os.path.isdir(filepath):  

        shutil.rmtree(filepath,True)  

        print "dir "+filepath+" removed!"


    用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"



你可能感兴趣的:(python,配置文件,import,文件夹)