您的位置:首页 > 编程语言 > Python开发

Python 实现文件复制、删除

2012-08-31 13:21 651 查看
http://www.cnblogs.com/sld666666/archive/2011/01/05/1926282.html

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

感觉是果然简单, 不过简单的原因是因为库函数丰富,语言基本特性的简单真没感觉出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息