利用python編寫自動整理下載目錄工具
先從最簡單的分類型開始
我的目標(biāo)也很簡單:按照文件類型,把文件移到對應(yīng)的子文件夾里,比如 PDF 放 documents,圖片放 images,安裝包放 installers。
先用 os 和 shutil 寫了個最基礎(chǔ)的版本,大概長這樣:
import os
import shutil
DOWNLOAD_DIR = os.path.expanduser("~/Downloads")
# 自定義分類規(guī)則
FILE_CATEGORIES = {
"documents": [".pdf", ".docx", ".xlsx"],
"images": [".jpg", ".png", ".gif"],
"installers": [".exe", ".msi", ".dmg"],
"compressed": [".zip", ".rar", ".7z"]
}
for filename in os.listdir(DOWNLOAD_DIR):
filepath = os.path.join(DOWNLOAD_DIR, filename)
if os.path.isdir(filepath):
continue # 跳過文件夾
ext = os.path.splitext(filename)[1].lower()
for category, extensions in FILE_CATEGORIES.items():
if ext in extensions:
target_dir = os.path.join(DOWNLOAD_DIR, category)
os.makedirs(target_dir, exist_ok=True)
shutil.move(filepath, os.path.join(target_dir, filename))
break
這個腳本大概只用了二三十行代碼,執(zhí)行完之后,整個下載目錄就沒那么亂了,看著清爽很多。
后來又加了一些小功能
整理完類型之后,我又加了兩個簡單的功能:
1. 按時間歸檔
比如我下載了一些老文件,也許早就用不到了,我想按月份歸類起來,方便日后清理。加個 getmtime 就能搞定:
from datetime import datetime
mtime = os.path.getmtime(filepath)
folder_name = datetime.fromtimestamp(mtime).strftime("%Y-%m")
target_dir = os.path.join(DOWNLOAD_DIR, folder_name)
2. 清理 N 天前的臨時文件
像 .log、.tmp 這種臨時文件,我希望自動刪除 30 天前的。判斷一下修改時間就行:
import time
now = time.time()
if ext in [".log", ".tmp"]:
if now - os.path.getmtime(filepath) > 30 * 86400:
os.remove(filepath)
這個功能很簡單,但用起來挺省事的。尤其我平時經(jīng)常截屏,系統(tǒng)會自動保存到下載目錄,這些圖放久了也沒意義,能自動清掉最好。
之后的一些嘗試
后來我還試著加了一點點擴展:
- 用
argparse支持從命令行輸入目錄路徑和保留天數(shù) - 文件變化監(jiān)聽用
watchdog,可以實時整理新下載的文件
另外也有人問我,這腳本是不是每次都得手動運行?
其實不用,可以定時執(zhí)行,方法很簡單,兩個思路:
方法一:用 schedule + 無限循環(huán)(適合一直掛著的機器)
import schedule
import time
import your_cleanup_script # 把你的整理函數(shù)封裝一下放這里
def job():
print("開始整理下載文件夾...")
your_cleanup_script.run()
# 每天早上 8 點執(zhí)行一次
schedule.every().day.at("08:00").do(job)
while True:
schedule.run_pending()
time.sleep(60)
這個適合你電腦一直開著,比如公司 PC,或者你打算放到服務(wù)器跑。
方法二:用系統(tǒng)自帶的定時任務(wù)
這個更實用一點:
macOS / Linux:用 crontab
- 打開終端,輸入
crontab -e - 加一行配置,比如每天 8 點執(zhí)行腳本:
0 8 * * * /usr/bin/python3 /Users/yourname/scripts/clean_downloads.py
Windows:用任務(wù)計劃程序
- 打開“任務(wù)計劃程序”
- 創(chuàng)建基本任務(wù)
- 設(shè)置觸發(fā)時間
- 執(zhí)行操作選擇“啟動程序”,路徑填你的 Python 解釋器,參數(shù)填你的腳本路徑。
我個人用的是 任務(wù)計劃程序,每天早上清理一次,設(shè)置好之后就不管了,省心。
最后
這個小腳本到現(xiàn)在我每天都在用。寫它不是什么“大項目”,就是想解決一個日常小問題。用起來也沒有多炫酷,但真的省心。
自從用了它,我的下載文件夾終于安靜了。 我再也沒被 2 年前的發(fā)票、3 周前的截圖和剛下的壓縮包夾擊過。
如果你也有類似困擾,可以試試動手寫一個,不用復(fù)雜,能跑就行。 寫點腳本,真的是最便宜的治愈方式之一。
以上就是利用python編寫自動整理下載目錄工具的詳細(xì)內(nèi)容,更多關(guān)于python自動整理下載目錄的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
pandas的相關(guān)系數(shù)與協(xié)方差實例
今天小編就為大家分享一篇pandas的相關(guān)系數(shù)與協(xié)方差實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

