01 實現背景
1、os模塊,實現文件的重命名、創建新文件夾操作
2、datetime模塊,用於獲取當前年、月、日
3、shutil模塊,用於移動文件
4、zipfile模塊,用於創建壓縮包
02 實現目標
1、找出當前目錄下超過3個月未操作過的文件,並將其重命名,在原本文件名的開頭加上最後修改日期,如 “text.py” 改爲 “2020-5-17-text.py”。
2、創建一個新文件夾叫backup,將所有重命名的文件都添加到壓縮包裏,給壓縮包加上今天日期
3、將壓縮包移動到backup文件夾裏,並刪除原始文件
03 注意事項
1、若想實現任意目錄下的壓縮操作,可以在os.walk()函數中自行加入路徑
2、代碼中自定義過期文件時間爲3個月,若想更改過期文件的時間,可以自行修改數字‘90’
04 實現代碼
import os
import datetime
import shutil
import zipfile
year = str(datetime.datetime.now().year)
month = str(datetime.datetime.now().month)
day = str(datetime.datetime.now().day)
time1 = datetime.datetime.now()
year = str(datetime.datetime.now().year)
month = str(datetime.datetime.now().month)
day = str(datetime.datetime.now().day)
if not os.path.exists('backup'):
os.mkdir('backup')
for dirpath,dirnames,file in os.walk('./'):
time2 = datetime.datetime.fromtimestamp(os.stat(dirpath).st_mtime)
if (time1 -time2).days < 90:
for files in file:
Olddir = os.path.join(dirpath,files)
Newdir = os.path.join(dirpath,year+'-'+month+'-'+' '+day+files)
os.rename(Olddir,Newdir)
with zipfile.ZipFile(year+'-'+month+'-'+' '+day+'.zip','w') as zipobj:
zipobj.write(Newdir)
os.remove(Newdir)
shutil.move(year+'-'+month+'-'+' '+day+'.zip','backup/')