在工作過程中,data目錄會一直接收文件,收到的文件放到一個大目錄里不好判斷是否漏收,也不利于檢索;
所以寫了個腳本,每天早上九點用Windows計劃執行,將昨日這個文件夾內收到的文件全部歸檔,歸檔文件夾的名字就是昨天的日期,腳本及解釋如下:
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
該函數調用get_datetime函數,獲得指定日期,并按照YYYYMMDD的格式將日期拼接;
使用isExists,來對文件名是否存在進行校驗,如果改文件夾不存在,則新建文件夾。
2.delete_flie
在移動結束后,刪除原目錄的文件;
在刪除前要使用os.path.exists驗證待刪除文件是否存在。
3.get_filename
獲取date文件夾內的文件名,并將其移動到新文件夾內;
在移動前要使用os.path.exists驗證待移動文件是否存在。
4.is_Monday
周一的時候需要將周五、周六、周日的文件都放在以周五日期命名的文件夾中,所以使用這個函數來判斷是星期幾;
datetime.datetime.now().weekday()函數是0-6來表示周一-周五,所以值為0的時候,返回3;
這個函數的值將傳給get_newfile,再調用get_datetime函數,通過控制這段的i,來控制生成的日期時間:
d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")
注:shutil.copy會改變文件生成時間,不好對文件進行判斷,所以要使用shutil.move移動文件
以上就是python實現按日期歸檔文件的詳細內容,更多關于python歸檔文件的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- Python3時間轉換之時間戳轉換為指定格式的日期方法詳解
- python獲取指定時間段內特定規律的日期列表
- python (logging) 日志按日期、大小回滾的操作
- Python時間和日期庫的實現
- Python tkinter實現日期選擇器
- Python繪制數碼晶體管日期
- Pycharm創建python文件自動添加日期作者等信息(步驟詳解)
- 基于python獲取本地時間并轉換時間戳和日期格式
- python 帶時區的日期格式化操作
- 如何使用 Python 讀取文件和照片的創建日期
- Python 常用日期處理 -- calendar 與 dateutil 模塊的使用
- python 常用日期處理-- datetime 模塊的使用
- python自動提取文本中的時間(包含中文日期)
- Python 處理日期時間的Arrow庫使用
- Python 日期與時間轉換的方法
- Python如何將字符串轉換為日期
- python實現將中文日期轉換為數字日期
- 教你怎么用python實現字符串轉日期