欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用python編寫自動(dòng)整理下載目錄工具

 更新時(shí)間:2025年05月22日 09:51:41   作者:花小姐的春天  
經(jīng)常用電腦的一定會(huì)遇到這種情況:每天我們都在從瀏覽器、微信、釘釘里下各種文件,什么截圖、合同、安裝包、臨時(shí)文檔,全都堆在下載文件夾里,結(jié)果某天想找一個(gè)發(fā)票 PDF 找了快十分鐘,才找到,所以本文給大家分享如何利用python編寫一個(gè)自動(dòng)整理下載目錄工具

先從最簡(jiǎn)單的分類型開始

我的目標(biāo)也很簡(jiǎn)單:按照文件類型,把文件移到對(duì)應(yīng)的子文件夾里,比如 PDF 放 documents,圖片放 images,安裝包放 installers。

先用 os 和 shutil 寫了個(gè)最基礎(chǔ)的版本,大概長(zhǎng)這樣:

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

這個(gè)腳本大概只用了二三十行代碼,執(zhí)行完之后,整個(gè)下載目錄就沒那么亂了,看著清爽很多。

后來又加了一些小功能

整理完類型之后,我又加了兩個(gè)簡(jiǎn)單的功能:

1. 按時(shí)間歸檔

比如我下載了一些老文件,也許早就用不到了,我想按月份歸類起來,方便日后清理。加個(gè) 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 天前的臨時(shí)文件

像 .log、.tmp 這種臨時(shí)文件,我希望自動(dòng)刪除 30 天前的。判斷一下修改時(shí)間就行:

import time

now = time.time()
if ext in [".log", ".tmp"]:
    if now - os.path.getmtime(filepath) > 30 * 86400:
        os.remove(filepath)

這個(gè)功能很簡(jiǎn)單,但用起來挺省事的。尤其我平時(shí)經(jīng)常截屏,系統(tǒng)會(huì)自動(dòng)保存到下載目錄,這些圖放久了也沒意義,能自動(dòng)清掉最好。

之后的一些嘗試

后來我還試著加了一點(diǎn)點(diǎn)擴(kuò)展:

  • argparse 支持從命令行輸入目錄路徑和保留天數(shù)
  • 文件變化監(jiān)聽用 watchdog,可以實(shí)時(shí)整理新下載的文件

另外也有人問我,這腳本是不是每次都得手動(dòng)運(yùn)行?

其實(shí)不用,可以定時(shí)執(zhí)行,方法很簡(jiǎn)單,兩個(gè)思路:

方法一:用 schedule + 無限循環(huán)(適合一直掛著的機(jī)器)

import schedule
import time
import your_cleanup_script  # 把你的整理函數(shù)封裝一下放這里

def job():
    print("開始整理下載文件夾...")
    your_cleanup_script.run()

# 每天早上 8 點(diǎn)執(zhí)行一次
schedule.every().day.at("08:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(60)

這個(gè)適合你電腦一直開著,比如公司 PC,或者你打算放到服務(wù)器跑。

方法二:用系統(tǒng)自帶的定時(shí)任務(wù)

這個(gè)更實(shí)用一點(diǎn):

macOS / Linux:用 crontab

  • 打開終端,輸入 crontab -e
  • 加一行配置,比如每天 8 點(diǎn)執(zhí)行腳本:
0 8 * * * /usr/bin/python3 /Users/yourname/scripts/clean_downloads.py

Windows:用任務(wù)計(jì)劃程序

  • 打開“任務(wù)計(jì)劃程序”
  • 創(chuàng)建基本任務(wù)
  • 設(shè)置觸發(fā)時(shí)間
  • 執(zhí)行操作選擇“啟動(dòng)程序”,路徑填你的 Python 解釋器,參數(shù)填你的腳本路徑。

我個(gè)人用的是 任務(wù)計(jì)劃程序,每天早上清理一次,設(shè)置好之后就不管了,省心。

最后

這個(gè)小腳本到現(xiàn)在我每天都在用。寫它不是什么“大項(xiàng)目”,就是想解決一個(gè)日常小問題。用起來也沒有多炫酷,但真的省心。

自從用了它,我的下載文件夾終于安靜了。 我再也沒被 2 年前的發(fā)票、3 周前的截圖和剛下的壓縮包夾擊過。

如果你也有類似困擾,可以試試動(dòng)手寫一個(gè),不用復(fù)雜,能跑就行。 寫點(diǎn)腳本,真的是最便宜的治愈方式之一。

以上就是利用python編寫自動(dòng)整理下載目錄工具的詳細(xì)內(nèi)容,更多關(guān)于python自動(dòng)整理下載目錄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺析Python?WSGI的使用

    淺析Python?WSGI的使用

    WSGI也稱之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱是web?server?gateway?interface。這篇文章主要為大家介紹了Python?WSGI的使用,希望對(duì)大家有所幫助
    2023-04-04
  • Python中的Classes和Metaclasses詳解

    Python中的Classes和Metaclasses詳解

    這篇文章主要介紹了Python中的Classes和Metaclasses詳解,屬于基礎(chǔ)知識(shí)中類與對(duì)象的概念部分的深入,需要的朋友可以參考下
    2015-04-04
  • Python新版極驗(yàn)驗(yàn)證碼識(shí)別驗(yàn)證碼教程詳解

    Python新版極驗(yàn)驗(yàn)證碼識(shí)別驗(yàn)證碼教程詳解

    這篇文章主要介紹了Python新版極驗(yàn)驗(yàn)證碼識(shí)別驗(yàn)證碼,極驗(yàn)驗(yàn)證是一種在計(jì)算機(jī)領(lǐng)域用于區(qū)分自然人和機(jī)器人的,通過簡(jiǎn)單集成的方式,為開發(fā)者提供安全、便捷的云端驗(yàn)證服務(wù)
    2023-02-02
  • 使用Python編寫提取日志中的中文的腳本的方法

    使用Python編寫提取日志中的中文的腳本的方法

    這篇文章主要介紹了使用Python編寫提取日志中的中文的腳本的方法,該腳本包括過濾重復(fù)的字符行等功能,需要的朋友可以參考下
    2015-04-04
  • Python隊(duì)列RabbitMQ 使用方法實(shí)例記錄

    Python隊(duì)列RabbitMQ 使用方法實(shí)例記錄

    這篇文章主要介紹了Python隊(duì)列RabbitMQ 使用方法,結(jié)合實(shí)例形式分析了Python隊(duì)列RabbitMQ創(chuàng)建隊(duì)列發(fā)送消息與創(chuàng)建消費(fèi)者消費(fèi)信息相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • pandas的相關(guān)系數(shù)與協(xié)方差實(shí)例

    pandas的相關(guān)系數(shù)與協(xié)方差實(shí)例

    今天小編就為大家分享一篇pandas的相關(guān)系數(shù)與協(xié)方差實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • PyTorch高級(jí)特性與性能優(yōu)化方式

    PyTorch高級(jí)特性與性能優(yōu)化方式

    這篇文章主要介紹了PyTorch高級(jí)特性與性能優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • 詳解python實(shí)現(xiàn)交叉驗(yàn)證法與留出法

    詳解python實(shí)現(xiàn)交叉驗(yàn)證法與留出法

    這篇文章主要介紹了詳解python實(shí)現(xiàn)交叉驗(yàn)證法與留出法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用Flask調(diào)用API接口的方法

    Python使用Flask調(diào)用API接口的方法

    使用Python的Flask框架構(gòu)建API接口是一種常見的做法,因?yàn)镕lask輕量級(jí)且易于使用,本文給大家介紹了Python使用Flask調(diào)用API接口的方法,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Python+Pytest實(shí)現(xiàn)壓力測(cè)試詳解

    Python+Pytest實(shí)現(xiàn)壓力測(cè)試詳解

    在現(xiàn)代Web應(yīng)用程序中,性能是至關(guān)重要的。為了確保應(yīng)用程序能夠在高負(fù)載下正常運(yùn)行,我們需要進(jìn)行性能測(cè)試。本文就來用Pytest進(jìn)行壓力測(cè)試,希望對(duì)大家有所幫助
    2023-03-03

最新評(píng)論