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"



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章