主頁(yè) > 知識(shí)庫(kù) > python實(shí)現(xiàn)按日期歸檔文件

python實(shí)現(xiàn)按日期歸檔文件

熱門(mén)標(biāo)簽:江門(mén)智能電話機(jī)器人 智能電話機(jī)器人調(diào)研 甘肅高頻外呼系統(tǒng) 400電話在線如何申請(qǐng) 滴滴地圖標(biāo)注公司 地圖標(biāo)注可以遠(yuǎn)程操作嗎 如何申請(qǐng)400電話代理 杭州房產(chǎn)地圖標(biāo)注 天津塘沽區(qū)地圖標(biāo)注

  在工作過(guò)程中,data目錄會(huì)一直接收文件,收到的文件放到一個(gè)大目錄里不好判斷是否漏收,也不利于檢索;

  所以寫(xiě)了個(gè)腳本,每天早上九點(diǎn)用Windows計(jì)劃執(zhí)行,將昨日這個(gè)文件夾內(nèi)收到的文件全部歸檔,歸檔文件夾的名字就是昨天的日期,腳本及解釋如下:

import os
import datetime
import shutil
 
# get file name
def get_datetime(i):
    d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")
    timeoffile = d[0] + d[1] + d[2]
    return(timeoffile)
 
# new file
def get_newfile(i):
    filename = get_datetime(i)
    aimPath = 'C:\\data\\' + filename
    isExists=os.path.exists(aimPath)
    if not isExists:
        os.makedirs(aimPath)
        print(aimPath + 'ok!')
        return aimPath
    else:
        print(aimPath + 'file is exists!')
        return False
 
 
def delete_flie(filePath):
    for i,j,k in os.walk(filePath):
        n = 0
        while n  len(k):
            fileneed = filePath + '\\' + k[n]
            if(os.path.exists(fileneed)):
                os.remove(fileneed)
            else:
                pass
            n = n + 1
     
# get file name and move
def get_filename(filePath):
    for i,j,k in os.walk(filePath):
        n = 0
        while n  len(k):
            fileneed = filePath + '\\' + k[n]
            if(os.path.exists(fileneed)):
                shutil.move(fileneed,aimPath)
            else:
                pass   
            n = n + 1
 
# Monday special
def is_Monday():
    if datetime.datetime.now().weekday() == 0:
        return 3
    else:
        return 1
 
filePath = 'C:\\data'
pos = is_Monday()
aimPath = get_newfile(pos)
get_filename(filePath)
delete_flie(filePath)

1.get_newfile

  該函數(shù)調(diào)用get_datetime函數(shù),獲得指定日期,并按照YYYYMMDD的格式將日期拼接;

  使用isExists,來(lái)對(duì)文件名是否存在進(jìn)行校驗(yàn),如果改文件夾不存在,則新建文件夾。

2.delete_flie

  在移動(dòng)結(jié)束后,刪除原目錄的文件;

  在刪除前要使用os.path.exists驗(yàn)證待刪除文件是否存在。

3.get_filename

  獲取date文件夾內(nèi)的文件名,并將其移動(dòng)到新文件夾內(nèi);

  在移動(dòng)前要使用os.path.exists驗(yàn)證待移動(dòng)文件是否存在。

4.is_Monday

  周一的時(shí)候需要將周五、周六、周日的文件都放在以周五日期命名的文件夾中,所以使用這個(gè)函數(shù)來(lái)判斷是星期幾;

  datetime.datetime.now().weekday()函數(shù)是0-6來(lái)表示周一-周五,所以值為0的時(shí)候,返回3;

  這個(gè)函數(shù)的值將傳給get_newfile,再調(diào)用get_datetime函數(shù),通過(guò)控制這段的i,來(lái)控制生成的日期時(shí)間:

    d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")

注:shutil.copy會(huì)改變文件生成時(shí)間,不好對(duì)文件進(jìn)行判斷,所以要使用shutil.move移動(dòng)文件

以上就是python實(shí)現(xiàn)按日期歸檔文件的詳細(xì)內(nèi)容,更多關(guān)于python歸檔文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python3時(shí)間轉(zhuǎn)換之時(shí)間戳轉(zhuǎn)換為指定格式的日期方法詳解
  • python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表
  • python (logging) 日志按日期、大小回滾的操作
  • Python時(shí)間和日期庫(kù)的實(shí)現(xiàn)
  • Python tkinter實(shí)現(xiàn)日期選擇器
  • Python繪制數(shù)碼晶體管日期
  • Pycharm創(chuàng)建python文件自動(dòng)添加日期作者等信息(步驟詳解)
  • 基于python獲取本地時(shí)間并轉(zhuǎn)換時(shí)間戳和日期格式
  • python 帶時(shí)區(qū)的日期格式化操作
  • 如何使用 Python 讀取文件和照片的創(chuàng)建日期
  • Python 常用日期處理 -- calendar 與 dateutil 模塊的使用
  • python 常用日期處理-- datetime 模塊的使用
  • python自動(dòng)提取文本中的時(shí)間(包含中文日期)
  • Python 處理日期時(shí)間的Arrow庫(kù)使用
  • Python 日期與時(shí)間轉(zhuǎn)換的方法
  • Python如何將字符串轉(zhuǎn)換為日期
  • python實(shí)現(xiàn)將中文日期轉(zhuǎn)換為數(shù)字日期
  • 教你怎么用python實(shí)現(xiàn)字符串轉(zhuǎn)日期

標(biāo)簽:東莞 長(zhǎng)春 廊坊 臨汾 德宏 重慶 河池 漢中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實(shí)現(xiàn)按日期歸檔文件》,本文關(guān)鍵詞  python,實(shí)現(xiàn),按,日期,歸檔,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python實(shí)現(xiàn)按日期歸檔文件》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python實(shí)現(xiàn)按日期歸檔文件的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章