1. 程式人生 > >Python檔案管理對相應目錄下的進刪除、重新命名、移動檔案等相應操作

Python檔案管理對相應目錄下的進刪除、重新命名、移動檔案等相應操作

#coding=utf8
'''
該庫用來管理檔案。
初始化函式呼叫讀取配置檔案模組中的Config類
用來獲取下載路徑、儲存路徑。
模組包含四個方法:
clearResultCSV(): 用來刪除下載路徑下所有的result開頭的csv檔案
moveCSVToSave():把下載路徑下的result.csv檔案重新命名,並把重新命名後的檔案移動到儲存路徑下
getLastFileWithPath():獲取儲存路徑下最新的檔案,並帶路徑返回該檔案
getLastFile():獲得最新檔案的命令並返回

'''
import os
#操作檔案的包
import shutil
import re
import time
#匯入讀取配置檔案庫的Config
from readConfig import Config

class FileManger(object):
    def __init__(self):
        try:
            #建立一個Config物件例項
            self.config=Config()
            #通過物件例項呼叫方法getDownPath()
            #獲取下載路徑
            self.down=self.config.getDownPath()
            #通過物件例項呼叫方法getSavePath()
            #獲取儲存路徑
            self.save=self.config.getSavePath()
        except Exception,e:
            print e
      
            
    def clearResultCSV(self):
        try:
            #獲取下載路徑下的所有檔案
            #並把檔案儲存在list變數fileList中
            fileList=os.listdir(self.down)
            #判斷fileList是否為空,不為空執行if模組
            if  fileList:
                #對fileList中的元素進行迴圈
                for item in fileList:
                    #查詢下載路徑下是否存在result開頭的csv檔案
                    #如果存在,則刪除
                    if re.match("result(.*).csv",item):
                        #刪除result開頭的csv檔案
                        os.remove(self.down+"\\"+item)
        except Exception,e:
            print e   
    
    def moveCSVToSave(self):
        try:
            #獲取下載路徑下的所有檔案
            #並把檔案儲存在list變數fileList中
            fileList=os.listdir(self.down)
            #獲取當前時間並轉換為字串格式
            now=time.strftime("%Y%m%d%H%M%S")
            #判斷fileList是否為空,不為空執行if模組
            if  fileList:
                #對fileList中的元素進行迴圈
                for item in fileList:
                    try:
                        #查詢下載路徑下是否存在result.csv檔案
                        #如果存在,對檔案進行重新命名
                        if re.match("result.csv",item):
                            #獲取帶有路徑的result.csv檔案
                            oldfilename=self.down+"\\"+item
                            #重新命名的命令格式是符:20170306143330.csv
                            newfileName=self.down+"\\"+now+".csv"
                            #對檔案result.csv進行重新命名為格式如:20170306143330.csv
                            os.rename(oldfilename,newfileName)
                            #把重新命名的檔案移動到儲存路徑下
                            shutil.move(newfileName, self.save) 
                    except Exception,e:
                        print e                                                   
        except Exception,e:
            print e
    
    def getLastFileWithPath(self):
        try:
            #獲取下載路徑下的所有檔案
            #並把檔案儲存在list變數listfile中
            listfile=os.listdir(self.save)
            #判斷listfile是否為空,不為空執行if模組
            if listfile:
                #儲存帶有路徑的最新檔案
                #listfile[-1]表示最後一個元素,最新插入的元素
                lastfile=self.save+"\\"+listfile[-1]
                #返回最新檔案
                return lastfile
        except Exception,e:
            print e
            
    def getLastFile(self):
        try:
            #獲取下載路徑下的所有檔案
            #並把檔案儲存在list變數listfile中
            listfile=os.listdir(self.save)
            #判斷listfile是否為空,不為空執行if模組
            if listfile:
                #儲存帶有路徑的最新檔案
                #listfile[-1]表示最後一個元素,最新插入的元素
                return listfile[-1]
        except Exception,e:
            print e
        
                    
def test():
    '''
    建立一個測試指令碼,執行冒煙測試。
    用來驗證程式功能能正常執行。
    '''
    #建立一個Config物件例項
    fm=FileManger()
    #fm.clearResultCSV()
    
    fm.moveCSVToSave()
    print fm.getLastFileWithPath(),os.listdir(fm.save)
    
if __name__=="__main__":
    test()
完整專案原始碼下載連結:http://download.csdn.net/download/henni_719/9771946