最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python從零打造桌面文件管理工具的完整指南

 更新時間:2026年03月13日 15:28:40   作者:winfredzhang  
在日常工作中,我們每天要接觸大量不同類型的文件,下面小編就來和大家詳細介紹一下如何使用Python從零打造一個桌面文件管理工具,感興趣的小伙伴可以了解下

一、背景:為什么需要這個工具

在日常工作中,我們每天要接觸大量不同類型的文件——PDF 報告、Word 文檔、Excel 表格、PowerPoint 演示文稿、圖片、視頻,以及無數(shù)個網(wǎng)頁鏈接。這些內(nèi)容分散存儲在不同磁盤目錄和瀏覽器書簽里,切換查找極為低效。

市面上存在的方案要么是重型的文檔管理系統(tǒng)(學(xué)習(xí)成本高、功能過剩),要么是簡單的書簽管理器(僅支持 URL,不能管理本地文件)。我們真正需要的,是一個輕量、跨類型、可以在同一界面查看文件詳情和預(yù)覽內(nèi)容的本地桌面應(yīng)用。

痛點:文件分散在多個目錄,缺少統(tǒng)一入口;不同格式(PDF、Word、圖片)需要打開不同程序才能看內(nèi)容;打開次數(shù)、標簽、備注等元數(shù)據(jù)無處記錄。

基于以上背景,本項目決定用 Python + wxPython 在本地構(gòu)建一個名為 RecentTracker 的桌面工具,目標是填補"輕量全文件類型管理器"這一空白。

二、目標:定義產(chǎn)品功能邊界

在動手寫代碼之前,我們對這個工具做了明確的功能定義:

核心功能(必須實現(xiàn))

  • 統(tǒng)一管理 PDF、Word、Excel、PPT、TXT、圖片、視頻和網(wǎng)頁鏈接
  • 卡片式列表展示,支持關(guān)鍵字搜索、類型篩選、星標收藏、多維排序
  • 右側(cè)內(nèi)嵌預(yù)覽區(qū):圖片可縮放、PDF 可翻頁/旋轉(zhuǎn)、Office 文件提取文字
  • SQLite 本地數(shù)據(jù)庫持久化,數(shù)據(jù)完全存儲在用戶本機
  • 支持拖放文件批量導(dǎo)入、文件夾掃描導(dǎo)入

體驗?zāi)繕耍ㄙ|(zhì)量約束)

  • 單擊卡片立即響應(yīng),不因文件 I/O 卡頓界面
  • 刷新列表時不閃爍、不跳動滾動位置
  • Python 3.8+ 兼容,Windows / macOS / Linux 均可運行
  • 依賴庫盡量可選:核心功能不強制安裝 Pillow / PyMuPDF
文件類型支持格式預(yù)覽方式
文檔PDF, DOCX, DOC, XLSX, XLS, PPTX, PPT, TXT文字提取 / PDF 渲染
圖片JPG, PNG, GIF, BMP, WEBP, TIFF縮略圖 + 可縮放顯示
視頻MP4, AVI, MKV, MOV, WMV, FLV文件信息展示
鏈接HTTP(S) URLURL 展示 + 瀏覽器打開

三、方法:技術(shù)選型與架構(gòu)設(shè)計

3.1 技術(shù)棧選型

Python 桌面 GUI 框架的主流選擇有三類:

框架優(yōu)點缺點適合場景
tkinter內(nèi)置,無需安裝外觀陳舊,控件有限極簡工具
PyQt / PySide功能強大,外觀現(xiàn)代授權(quán)復(fù)雜,體積大商業(yè)軟件
wxPython原生控件,跨平臺,MIT文檔分散,API 較老本地工具

本項目選擇 wxPython 4.x,理由是它使用系統(tǒng)原生控件(在 Windows 上看起來就像 Windows 應(yīng)用),MIT 授權(quán)無顧慮,且 ScrolledPanel、SplitterWindow 等控件完全滿足需求。

3.2 整體架構(gòu)

整個項目是單文件應(yīng)用(main.py,約 2100 行),遵循分層架構(gòu):

┌─────────────────────────────────────────────────────┐
│                    MainFrame                        │
│  ┌──────────┐  ┌─────────────┐  ┌──────────────┐  │
│  │   Left   │  │  CardList   │  │ DetailPanel  │  │
│  │ Sidebar  │  │ (卡片列表)   │  │  (預(yù)覽面板)   │  │
│  │ (篩選欄)  │  │             │  │              │  │
│  └──────────┘  └─────────────┘  └──────────────┘  │
│                     ? 數(shù)據(jù)層                        │
│              Database (SQLite3)                     │|
└─────────────────────────────────────────────────────┘

各層職責(zé)劃分清晰:

  • 數(shù)據(jù)層(Database 類):封裝所有 SQLite 操作,對上層暴露 add_item / get_all / update_item 等純數(shù)據(jù)接口
  • 控件層(ItemCard / CardList):負責(zé)列表渲染與用戶交互,通過回調(diào)函數(shù)通知 MainFrame
  • 預(yù)覽層(DetailPanel):右側(cè)預(yù)覽,內(nèi)部管理 PDF 文檔句柄和圖片狀態(tài),與數(shù)據(jù)層直接通信
  • 主窗口(MainFrame):協(xié)調(diào)各組件,持有篩選/排序/搜索狀態(tài),統(tǒng)一調(diào)用 refresh()

四、過程:逐模塊源碼解析

4.1 數(shù)據(jù)庫層——Database 類

Database 類是整個應(yīng)用的數(shù)據(jù)基礎(chǔ),使用 SQLite3 標準庫,無需任何第三方 ORM。核心表結(jié)構(gòu)如下:

CREATE TABLE items (
    id          INTEGER PRIMARY KEY AUTOINCREMENT,
    title       TEXT NOT NULL,
    type        TEXT NOT NULL,       -- pdf/docx/photo/link/video...
    path        TEXT,                -- 本地文件路徑
    url         TEXT,                -- 網(wǎng)頁鏈接
    tags        TEXT DEFAULT '',
    note        TEXT DEFAULT '',
    thumbnail   BLOB,               -- PNG 縮略圖二進制
    star        INTEGER DEFAULT 0,
    created_at  TEXT,
    updated_at  TEXT,
    last_opened TEXT,
    open_count  INTEGER DEFAULT 0
);

每次操作都通過 _conn() 方法獲取連接,使用 with 語句自動提交/回滾,保證線程安全。row_factory = sqlite3.Row 讓查詢結(jié)果像字典一樣按列名訪問,代碼可讀性大幅提升。

設(shè)計亮點:get_all() 方法將搜索、過濾、排序全部在 SQL 層完成,避免在 Python 層做大量數(shù)據(jù)處理;排序字段經(jīng)白名單校驗防止 SQL 注入;thumbnail 字段直接存儲 PNG 的 BLOB 數(shù)據(jù),免去外部圖片文件管理的復(fù)雜性。

技巧:update_item() 使用 **kwargs 動態(tài)構(gòu)建 SET 子句,只更新傳入的字段,避免每次更新都要寫完整列名,非常適合局部更新場景(如只更新星標、或只更新 open_count)。

4.2 可選依賴的優(yōu)雅處理

項目有三個可選依賴庫,任何一個缺失都不應(yīng)導(dǎo)致程序崩潰:

try:
    from PIL import Image as PILImage
    HAS_PIL = True
except ImportError:
    HAS_PIL = False
try:
    import fitz   # PyMuPDF
    HAS_FITZ = True
except ImportError:
    HAS_FITZ = False

在運行時檢查這些標志,缺失時給出安裝提示而非異常。例如 PDF 預(yù)覽:有 PyMuPDF 則渲染為圖片,無則降級為文字提??;有 Pillow 則生成圖片縮略圖,無則只顯示類型文字。這種"漸進增強"策略是小型工具的最佳實踐。

另一個值得注意的處理是 _safe_webbrowser() 函數(shù):

def _safe_webbrowser():
    import importlib.util, sysconfig
    stdlib = sysconfig.get_path("stdlib")
    wb_file = os.path.join(stdlib, "webbrowser.py")
    spec = importlib.util.spec_from_file_location("_wb", wb_file)
    mod  = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(mod)
    return mod

這是為了解決一個真實 Bug:用戶 Python 路徑中存在一個同名的 webbrowser.py 文件(內(nèi)部導(dǎo)入了 pandas),導(dǎo)致標準庫的 webbrowser 模塊被遮蔽,打開鏈接時拋出異常。通過 sysconfig 定位標準庫絕對路徑并直接加載,完全繞過路徑遮蔽問題。

4.3 ItemCard——卡片控件設(shè)計

每一條記錄在列表中都渲染為一個 ItemCard(繼承 wx.Panel)。卡片由三部分水平排列:

  • 左側(cè)色條(5px 寬):顏色由文件類型決定,快速視覺區(qū)分
  • 類型徽章區(qū)(56px):優(yōu)先顯示圖片縮略圖,無縮略圖則顯示類型文字
  • 信息區(qū):標題(粗體)+ 星標按鈕 + 路徑(小字灰色)+ 底部標簽和日期

交互行為通過回調(diào)函數(shù)解耦:ItemCard 本身不知道父容器是誰,只持有三個回調(diào):on_select(單擊選中)、on_open(雙擊打開)、on_star(切換星標)。這種設(shè)計讓卡片完全可測試、可復(fù)用。

_update_item() 方法 是性能優(yōu)化的關(guān)鍵:刷新列表時,已有的卡片不銷毀重建,而是調(diào)用此方法原地更新星標按鈕的文字和顏色,然后 Refresh()。避免了大量 Panel 的銷毀/創(chuàng)建開銷,是消除列表閃爍的基礎(chǔ)。

4.4 CardList——無閃爍刷新

CardList 是最復(fù)雜的控件之一,其 refresh() 方法經(jīng)歷了多次迭代才達到當(dāng)前無閃爍效果。核心策略是 Freeze / Thaw 包裹 + 最小化 DOM 變更:

def refresh(self, items, keep_selection=False):
    self.Freeze()   # 暫停所有重繪,消除中間狀態(tài)閃爍
    try:
        scroll_x, scroll_y = self.GetViewStart()  # 記錄滾動位置
        prev_selected = self.selected_id
        # 1. 銷毀已刪除的卡片
        removed = [oid for oid in self.cards if oid not in new_ids]
        for oid in removed:
            self.cards.pop(oid).Destroy()
        # 2. 銷毀廉價分隔線,清空 sizer(不銷毀卡片窗口)
        for child in self.GetChildren():
            if isinstance(child, wx.StaticLine): child.Destroy()
        self.sizer.Clear(False)
        # 3. 按新順序重新添加卡片 + 新建分隔線
        for item in items:
            if iid in self.cards:
                self.cards[iid]._update_item(dict(item))  # 原地更新
            else:
                self.cards[iid] = ItemCard(...)            # 新建
            self.sizer.Add(self.cards[iid], 0, wx.EXPAND)
            self.sizer.Add(wx.StaticLine(self), 0, wx.EXPAND)
        self.Layout()
        self.Scroll(scroll_x, scroll_y)  # 恢復(fù)滾動位置
    finally:
        self.Thaw()  # 一次性重繪,用戶看不到中間狀態(tài)

關(guān)鍵:sizer.Clear(False) 只解除布局關(guān)聯(lián),不銷毀窗口對象,使得卡片 Panel 可以被重新 Add 到 sizer 中復(fù)用,而不是每次都重新創(chuàng)建大量控件。

4.5 DetailPanel——內(nèi)嵌預(yù)覽引擎

右側(cè) DetailPanel 是功能最豐富的部分,支持六種預(yù)覽模式,并為 PDF 和圖片提供獨立的工具欄控件。

文件類型預(yù)覽實現(xiàn)控件欄
圖片Pillow 加載 → wx.StaticBitmap 渲染縮放-+ / 適應(yīng) / 原始
PDFPyMuPDF page.get_pixmap() 渲染為 PNG翻頁 ?? / 縮放 / 旋轉(zhuǎn) ??
TXT自動檢測編碼(UTF-8/GBK/Big5)
Wordpython-docx 提取段落+表格文字
Excelopenpyxl 多 Sheet 提取,最多 3 個
PPTpython-pptx 逐頁提取文字
鏈接URL 展示 + 瀏覽器打開按鈕

PDF 縮放采用"適應(yīng)寬度"作為默認值,通過 _calc_fit_scale() 方法動態(tài)計算:

def _calc_fit_scale(self):
    page = self._pdf_doc[self._pdf_page]
    cw = max(self.canvas.GetSize().width - 30, 300)  # 畫布寬度
    pw = page.rect.width                              # PDF 頁面原始寬度
    return max(0.3, cw / pw / 1.5)   # 1.5 是 PyMuPDF 渲染分辨率倍率

4.6 后臺線程——消除 UI 卡頓

文件讀?。ㄓ绕涫谴笮?Word / Excel / PDF)是耗時操作,如果在主線程執(zhí)行,界面會在讀取期間完全凍結(jié)。項目采用"令牌化后臺線程"方案徹底解決這一問題:

def load(self, id_):
    self._load_token += 1        # 遞增令牌
    token = self._load_token
    self._show_loading()         # 主線程立即顯示"加載中…"
    def _bg():
        result = {}
        # ... 在后臺線程讀取文件,不調(diào)用任何 wx API ...
        result["text"] = _read_word(path)
        # 回到主線程前檢查令牌是否仍然有效
        if token == self._load_token:
            wx.CallAfter(self._apply_result, result, token)
    threading.Thread(target=_bg, daemon=True).start()

令牌機制(_load_token)確??焖偾袚Q條目時,舊線程的結(jié)果不會覆蓋新請求的內(nèi)容。例如用戶快速點擊 A → B → C,只有 C 的加載結(jié)果會被渲染,A 和 B 的后臺線程完成后發(fā)現(xiàn)令牌已過期,直接丟棄結(jié)果。

原則:wxPython 與大多數(shù) GUI 框架相同,所有控件操作必須在主線程執(zhí)行。后臺線程只做純 Python 計算(讀文件、解析文檔),完成后通過 wx.CallAfter() 將渲染任務(wù)派發(fā)回主線程。

4.7 文件讀取函數(shù)族

為了讓代碼結(jié)構(gòu)清晰,所有文件讀取邏輯被提取為模塊級純函數(shù)(不依賴 wx),分別是:

  • _read_text(path):自動嘗試 utf-8-sig / utf-8 / gbk / gb2312 / big5 / latin-1 六種編碼,確保中文內(nèi)容能正確讀取
  • _read_word(path):.docx 用 python-docx 提取段落和表格;.doc 舊格式先嘗試 python-docx,失敗則從二進制提取可打印字符(GBK/UTF-16-LE)
  • _read_excel(path):.xlsx 用 openpyxl 讀取,最多預(yù)覽 3 個 Sheet;.xls 先嘗試 openpyxl,再嘗試 xlrd 作為備選
  • _read_pptx(path):用 python-pptx 逐頁提取文字,并標注頁碼

這些函數(shù)完全無副作用,輸入文件路徑,輸出字符串,易于獨立測試和維護。

4.8 主窗口 MainFrame——三欄布局

界面采用兩級 SplitterWindow 嵌套實現(xiàn)三欄自由拖拽布局:

sp_root  = wx.SplitterWindow(self)   # 根分割器(左 | 右)
sp_right = wx.SplitterWindow(sp_root) # 右側(cè)分割器(列表 | 預(yù)覽)
sp_right.SplitVertically(mid, self.detail, -305)  # 預(yù)覽欄默認 305px
sp_root.SplitVertically(left, sp_right, 158)       # 側(cè)邊欄固定 158px

左側(cè)邊欄固定寬度 158px,包含類型篩選按鈕、排序下拉、星標切換和添加按鈕;中間列表欄自適應(yīng)寬度,包含搜索框和卡片列表;右側(cè)預(yù)覽欄默認 305px 寬。三欄均可拖動調(diào)整。

4.9 數(shù)據(jù)流動與事件機制

整個應(yīng)用的數(shù)據(jù)流遵循單向原則:

用戶操作(點擊 / 搜索 / 篩選)
    ↓
MainFrame 更新狀態(tài)(filter_type / search_text / sort_by)
    ↓
refresh() → db.get_all() → CardList.refresh(items)
    ↓
選中 → DetailPanel.load(id_) → 后臺線程讀文件 → 渲染

wxPython 事件通過 Bind 掛接,MainFrame 統(tǒng)一持有狀態(tài)。子控件通過構(gòu)造時傳入的回調(diào)函數(shù)(on_select、on_open、on_star)向上通知,不直接引用父容器,保持解耦。

4.10 兼容性處理細節(jié)

項目在開發(fā)過程中遇到并解決了多個 wxPython 兼容性問題:

  • wx.NewId() 廢棄警告:改用 wx.MenuItem(menu, wx.ID_ANY, label) + mi.GetId() 綁定事件
  • BoxSizer 無 GetItemIndex() 方法(版本差異):改用"銷毀 StaticLine → sizer.Clear(False) → 重新 Add"的方式重排,完全規(guī)避該方法
  • bytes | None 類型注解語法(Python 3.10+ 特性):改為 Optional[bytes] 或去掉注解,保持 3.8+ 兼容
  • SQLite 數(shù)據(jù)庫路徑:改為 os.path.expanduser("~") 用戶主目錄,避免寫權(quán)限問題

五、結(jié)果:最終交付物與實際效果

5.1 功能完成情況

功能模塊完成狀態(tài)備注
多類型文件管理完成9 種類型,顏色編碼區(qū)分
卡片式列表 + 搜索/篩選/排序完成全文搜索 + 4 種排序
拖放導(dǎo)入 + 文件夾批量導(dǎo)入完成FileDrop 實現(xiàn)
圖片預(yù)覽(縮放)完成需 Pillow
PDF 預(yù)覽(翻頁/縮放/旋轉(zhuǎn))完成需 PyMuPDF,降級文字
Word/Excel/PPT 文字預(yù)覽完成含舊格式兼容
后臺線程加載,UI 不卡頓完成令牌機制防亂序
無閃爍列表刷新完成Freeze/Thaw + 原地更新
JSON 導(dǎo)出/導(dǎo)入完成縮略圖 base64 編碼
SQLite 備份/恢復(fù)完成shutil.copy2
數(shù)據(jù)統(tǒng)計完成按類型分組計數(shù)

5.2 版本迭代歷程

本項目共經(jīng)歷 8 個版本迭代,每版都針對真實使用中發(fā)現(xiàn)的問題進行修復(fù):

  • v1:初始實現(xiàn),功能基礎(chǔ)可用
  • v2:修復(fù) wx.NewId() 廢棄警告、標準庫遮蔽 Bug、SQLite 路徑權(quán)限問題
  • v3:修復(fù) Python 3.8 類型注解兼容問題
  • v4:新增預(yù)覽功能(彈窗模式),支持 PDF 渲染、圖片縮放
  • v5:重構(gòu)預(yù)覽為內(nèi)嵌模式,替換右側(cè)屬性面板,新增 PDF 翻頁/旋轉(zhuǎn)/縮放控件
  • v6:單擊不再彈出預(yù)覽窗;CardList 引入 Freeze/Thaw 消除列表閃爍
  • v7:修復(fù) GetItemIndex() 兼容性錯誤;PDF 默認"適應(yīng)寬度"
  • v8:Word 預(yù)覽修復(fù)(含 .doc 舊格式兼容);后臺線程加載消除切換卡頓

5.3 代碼規(guī)模與結(jié)構(gòu)

指標數(shù)值
總行數(shù)約 2,100 行
核心類6 個(Database, ItemCard, CardList, DetailPanel, AddEditDialog, MainFrame)
模塊級工具函數(shù)10 個(含 4 個文件讀取函數(shù))
依賴庫(必須)1 個(wxPython)
依賴庫(可選)4 個(Pillow, PyMuPDF, python-docx, openpyxl / python-pptx)
數(shù)據(jù)存儲SQLite,單文件,存于用戶主目錄

六、總結(jié):經(jīng)驗與思考

6.1 值得推廣的工程實踐

① 可選依賴的漸進增強

用 try/except ImportError + 全局標志的方式處理可選庫,讓核心功能無依賴可運行,豐富功能按需安裝。這是命令行工具和桌面工具的通用最佳實踐。

② 令牌化異步加載

_load_token 計數(shù)器是一種輕量級的"取消"機制,無需復(fù)雜的 Future/Promise,只需在回調(diào)時比較令牌值,即可優(yōu)雅地處理快速切換時的競態(tài)條件。

③ Freeze/Thaw 消除閃爍

wxPython 的 Freeze() 暫停重繪,所有 UI 變更在內(nèi)存中完成,最后 Thaw() 一次性渲染。配合 sizer.Clear(False)(不銷毀窗口)+ 卡片復(fù)用,實現(xiàn)了真正無閃爍的列表刷新。

④ 純函數(shù)文件讀取

將 _read_word / _read_excel 等提取為模塊級純函數(shù),不依賴任何實例狀態(tài)或 wx 對象,使后臺線程的調(diào)用完全安全,也方便獨立測試。

6.2 局限性與改進方向

  • 縮略圖僅支持圖片類型,PDF 首頁縮略圖、Office 預(yù)覽圖尚未實現(xiàn)
  • 搜索目前是實時觸發(fā)(每次按鍵都查數(shù)據(jù)庫),大數(shù)據(jù)量時可加防抖(debounce)
  • 拖放排序(手動調(diào)整條目順序)尚未實現(xiàn),依賴數(shù)據(jù)庫字段排序
  • 暫無云同步,數(shù)據(jù)完全本地;可考慮 JSON 導(dǎo)出后對接 WebDAV 或 Git
  • .doc 舊格式的文字提取是啟發(fā)式方法,精度有限,建議配合 LibreOffice 轉(zhuǎn)換

到此這篇關(guān)于Python從零打造桌面文件管理工具的完整指南的文章就介紹到這了,更多相關(guān)Python桌面文件管理工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于wxPython實現(xiàn)TodoList任務(wù)管理器開發(fā)詳解

    Python基于wxPython實現(xiàn)TodoList任務(wù)管理器開發(fā)詳解

    在日常工作和學(xué)習(xí)中,任務(wù)管理是提高效率的重要工具,本文將詳細介紹如何使用Python的wxPython GUI框架開發(fā)一個功能完善的TodoList任務(wù)管理器,下面我們就來看看具體實現(xiàn)方法吧
    2025-12-12
  • python使用PyGame播放Midi和Mp3文件的方法

    python使用PyGame播放Midi和Mp3文件的方法

    這篇文章主要介紹了python使用PyGame播放Midi和Mp3文件的方法,涉及Python操作多媒體文件的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • python數(shù)據(jù)清洗中的時間格式化實現(xiàn)

    python數(shù)據(jù)清洗中的時間格式化實現(xiàn)

    本文主要介紹了python數(shù)據(jù)清洗中的時間格式化實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python中三種條件語句示例介紹

    Python中三種條件語句示例介紹

    大家好,本篇文章主要講的是Python中三種條件語句示例介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Tornado實現(xiàn)多進程/多線程的HTTP服務(wù)詳解

    Tornado實現(xiàn)多進程/多線程的HTTP服務(wù)詳解

    這篇文章主要介紹了Tornado實現(xiàn)多進程/多線程的HTTP服務(wù)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值
    2019-07-07
  • python實現(xiàn)簡易連點器

    python實現(xiàn)簡易連點器

    本文主要介紹了python實現(xiàn)簡易連點器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Django組件之cookie與session的使用方法

    Django組件之cookie與session的使用方法

    這篇文章主要介紹了Django組件之cookie與session的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • python代碼打包到exe的實現(xiàn)示例

    python代碼打包到exe的實現(xiàn)示例

    本文主要介紹了python代碼打包到exe的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11
  • python 實現(xiàn)多線程的三種方法總結(jié)

    python 實現(xiàn)多線程的三種方法總結(jié)

    這篇文章主要介紹了python 實現(xiàn)多線程的三種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python設(shè)置Excel條件格式的實戰(zhàn)教程

    Python設(shè)置Excel條件格式的實戰(zhàn)教程

    條件格式是一項強大的功能,它可以根據(jù)單元格值自動應(yīng)用不同的格式樣式,本文將介紹如何使用 Python 在 Excel 工作表中應(yīng)用條件格式,實現(xiàn)數(shù)據(jù)的可視化展示,感興趣的小伙伴可以了解下
    2026-03-03

最新評論

抚州市| 蛟河市| 皋兰县| 基隆市| 百色市| 四平市| 沅陵县| 乌海市| 临朐县| 博湖县| 乌拉特后旗| 信宜市| 五家渠市| 晋宁县| 扎鲁特旗| 德格县| 永登县| 建瓯市| 辰溪县| 江油市| 萨嘎县| 荥阳市| 新化县| 株洲县| 泸水县| 太和县| 郸城县| 焦作市| 通江县| 库伦旗| 大兴区| 香港| 龙岩市| 南安市| 新建县| 张家界市| 唐河县| 安远县| 同江市| 内丘县| 苍溪县|