Python 實現批量文件重命名工具

在現代軟件開發中,圖形用戶界面 (GUI) 工具的創建是一個常見需求。對于那些需要頻繁處理文件的任務,擁有一個簡便的 GUI 工具尤為重要。在這篇博客中,我們將介紹如何使用 wxPython 創建一個簡單的批量文件重命名工具。該工具可以選擇一個文件夾并將其中所有 .txt 后綴的文件重命名為 .jpg
C:\pythoncode\new\rename.py

1. 環境準備

首先,我們需要安裝 wxPython。如果你還沒有安裝,可以使用 pip 進行安裝:

pip install wxPython
2. 設計 GUI 界面

我們使用 wxPython 來創建一個簡潔的 GUI 界面。這個界面包含一個按鈕,當點擊按鈕時可以選擇文件夾,并進行文件重命名操作。

3. 實現代碼

下面是完整的 Python 代碼示例:

import wx
import osclass MyFrame(wx.Frame):def __init__(self, *args, **kw):super(MyFrame, self).__init__(*args, **kw)pnl = wx.Panel(self)vbox = wx.BoxSizer(wx.VERTICAL)self.btn = wx.Button(pnl, label='選擇文件夾')self.btn.Bind(wx.EVT_BUTTON, self.onSelectFolder)vbox.Add(self.btn, 0, wx.ALL | wx.CENTER, 5)pnl.SetSizer(vbox)self.CreateStatusBar()self.SetStatusText("歡迎使用文件重命名工具")def onSelectFolder(self, event):with wx.DirDialog(self, "選擇一個文件夾", style=wx.DD_DEFAULT_STYLE) as dlg:if dlg.ShowModal() == wx.ID_OK:folder_path = dlg.GetPath()self.rename_files(folder_path)def rename_files(self, folder_path):for filename in os.listdir(folder_path):if filename.endswith('.txt'):txt_path = os.path.join(folder_path, filename)jpg_path = os.path.join(folder_path, filename[:-4] + '.jpg')os.rename(txt_path, jpg_path)self.SetStatusText("重命名完成")class MyApp(wx.App):def OnInit(self):self.frame = MyFrame(None, title="文件重命名工具", size=(300, 150))self.frame.Show()return Trueif __name__ == "__main__":app = MyApp()app.MainLoop()
4. 代碼解釋

讓我們逐步解釋這段代碼的主要部分:

  1. 導入模塊

    import wx
    import os
    
    • wx 模塊用于創建圖形界面。
    • os 模塊用于操作文件和目錄。
  2. 創建主窗口類 MyFrame

    class MyFrame(wx.Frame):def __init__(self, *args, **kw):super(MyFrame, self).__init__(*args, **kw)pnl = wx.Panel(self)vbox = wx.BoxSizer(wx.VERTICAL)self.btn = wx.Button(pnl, label='選擇文件夾')self.btn.Bind(wx.EVT_BUTTON, self.onSelectFolder)vbox.Add(self.btn, 0, wx.ALL | wx.CENTER, 5)pnl.SetSizer(vbox)self.CreateStatusBar()self.SetStatusText("歡迎使用文件重命名工具")
    
    • __init__ 方法:初始化窗口,創建按鈕并綁定事件。
  3. 按鈕點擊事件處理

    def onSelectFolder(self, event):with wx.DirDialog(self, "選擇一個文件夾", style=wx.DD_DEFAULT_STYLE) as dlg:if dlg.ShowModal() == wx.ID_OK:folder_path = dlg.GetPath()self.rename_files(folder_path)
    
    • 當按鈕被點擊時,打開文件夾選擇對話框,并調用 rename_files 方法。
  4. 文件重命名邏輯

    def rename_files(self, folder_path):for filename in os.listdir(folder_path):if filename.endswith('.txt'):txt_path = os.path.join(folder_path, filename)jpg_path = os.path.join(folder_path, filename[:-4] + '.jpg')os.rename(txt_path, jpg_path)self.SetStatusText("重命名完成")
    
    • 遍歷選定文件夾中的所有文件,將 .txt 后綴的文件重命名為 .jpg
  5. 應用啟動

    class MyApp(wx.App):def OnInit(self):self.frame = MyFrame(None, title="文件重命名工具", size=(300, 150))self.frame.Show()return Trueif __name__ == "__main__":app = MyApp()app.MainLoop()
    
    • 創建 MyApp 實例并啟動應用的主事件循環。
5. 運行應用

保存上述代碼到一個 Python 文件中,例如 rename_tool.py,然后在終端或命令提示符中運行:

python rename_tool.py

你將看到一個窗口,點擊“選擇文件夾”按鈕,選擇包含 .txt 文件的文件夾,程序將自動將這些文件重命名為 .jpg
在這里插入圖片描述

6. 總結

通過這篇博客,我們學習了如何使用 wxPython 創建一個簡單的 GUI 工具,用于批量重命名文件夾中的文件。Happy coding!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14278.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

判斷子序列二刷

文章目錄 1、描述2、思路3、notes4、復雜度 1、描述 給定字符串 s 和 t &#xff0c;判斷 s 是否為 t 的子序列。 你可以認為 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長&#xff08;長度 ~ 500,000&#xff09;&#xff0c;而 s 是個短字符串&#xff08;長度 <1…

Web開發——HTMLCSS

1、概述 Web開發分前端開發和后端開發&#xff0c;前端開發負責展示數據&#xff0c;后端開發負責處理數據。 HTML&CSS是瀏覽器數據展示相關的內容。 1&#xff09;網頁的組成部分 文字、圖片、音頻、視頻、超鏈接、表格等等 2&#xff09;網頁背后的本質 程序員寫的前端…

重大活動網絡安全保障建設及運營指南

在當今高度數字化的社會中&#xff0c;各類重大活動如會議、展覽、賽事及慶典等正面臨著日益復雜和嚴峻的網絡安全威脅。這些威脅不限于網絡入侵或數據泄露&#xff0c;更涉及到對基礎設施、關鍵信息系統和公眾輿論的復雜攻擊&#xff0c;需要國際社會的密切合作和長期關注。因…

一張圖看懂大模型性價比:能力、價格、并發量全面PK

最近&#xff0c;國內云廠商的大模型掀起一場降價風暴。火山引擎、阿里云、百度云等紛紛宣布降價&#xff0c;部分模型價格降幅據稱高達99%&#xff0c;甚至還有些模型直接免費。 五花八門的降價話術&#xff0c;一眼望去遍地黃金。但事實真的如此嗎&#xff1f;今天我們就撥開…

統計信號處理基礎 習題解答10-2

題目 兩個隨機變量x和y&#xff0c;如果聯合PDF分解為&#xff1a; 那么稱他們為條件獨立的。在上式中z是條件隨機變量。 我們觀察 其中, , 是相互獨立的。證明和是條件獨立的。給出條件變量是A。和是無條件獨立么&#xff1f;也就是 成立么&#xff1f;為了回答這個問題&…

如何使用jmap工具生成堆內存快照

1、確保已安裝JDK&#xff1a; 首先&#xff0c;確保你的系統上安裝了Java Development Kit (JDK)。 2、找到Java進程的PID&#xff1a; 你需要知道你想要生成堆內存快照的Java進程的進程ID&#xff08;PID&#xff09;。你可以使用命令行工具如ps&#xff08;在Unix/Linux系…

Redis Cluster 集群搭建

1. 安裝 Redis sudo apt-get update sudo apt-get install redis-server2. 創建配置文件 為每個 Redis 實例創建獨立的配置文件和數據目錄&#xff1a; mkdir -p /usr/local/redis-cluster/{7000,7001,7002,7003,7004,7005}3. 配置文件內容 每個 Redis 實例的配置文件內容如…

秋招突擊——算法打卡——5/24——兩數之和

題目描述 實現代碼 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int addNumber 0;// 表示進位ListNode* res ListNode();ListNode* curNode res;while(l1 && l2){curNode.value (l1.value l2.value addNumber) % 10 addNumber (l1.value l2.value…

python3序列化模塊之pickle

官方文檔 簡介 pickle 是 Python 中用于對象序列化和反序列化的標準庫模塊。它可以將 Python 對象轉換為字節流,并將其保存到文件或通過網絡傳輸,在需要時再將其恢復為原來的 Python 對象。 模塊 pickle 實現了對一個 Python 對象結構的二進制序列化和反序列化。 “pickling…

如何快速增加外鏈?

要快速增加外鏈并不難&#xff0c;相信各位都知道&#xff0c;難的是快速增加外鏈且沒有風險&#xff0c;所以這時候GNB外鏈的重要性就出現了&#xff0c;這是一種自然的外鏈&#xff0c;何謂自然的外鏈&#xff0c;在谷歌的體系當中&#xff0c;自然外鏈指的就是其他網站資源給…

mysql 、oss 結合使用

以下是一個使用 Express、MySQL、OSS 和 axios 的 Node.js 示例。這個示例創建了一個 Express 服務器&#xff0c;該服務器有一個路由用于處理視頻上傳的請求。視頻文件首先被上傳到 OSS&#xff0c;然后視頻的 OSS URL 被存儲到 MySQL 數據庫。 首先&#xff0c;我們需要安裝必…

最大負載1kg!高度模塊化設計!大象機器人智能遙控操作機械臂組合myArm MC

引入 近年來&#xff0c;市面上涌現了許多類似于斯坦福大學的 Alopha 機器人項目&#xff0c;這些項目主要通過模仿人類的運動軌跡來進行學習&#xff0c;實現了仿人類的人工智能。Alopha 機器人通過先進的算法和傳感技術&#xff0c;能夠精確復制人類的動作&#xff0c;并從中…

【stm32】——使用HAL庫點燈

目錄 一、安裝STM32CubeMX 二、HAL庫點亮LED燈 1.STM32CubeMX創建項目 2.進入Keil編寫代碼 三、采用中斷控制LED燈的亮滅 1.創建項目 2.Keil中編寫代碼 四、Keil波形分析 總結 一、安裝STM32CubeMX 具體操作可以參考下面鏈接&#xff1a; 搭建STM32開發環境——STM32CubeMX&a…

用Python pynput庫捕捉每一次組合鍵的優雅舞步

哈嘍&#xff0c;大家好&#xff0c;我是木頭左&#xff01; 一、初識pynput&#xff1a;鍵盤與鼠標的監控利器 當談論計算機交互時&#xff0c;鍵盤和鼠標無疑是最常用的設備。無論是編寫代碼、瀏覽網頁還是玩游戲&#xff0c;都依賴于這些輸入設備與機器溝通。但在一些特殊的…

藍橋杯單片機-國賽5——各外設時序記憶方法及手冊重點提取

藍橋杯涉及三個通訊外設&#xff0c;時序很難記憶&#xff0c;因此本文重點在于記錄如何不背時序&#xff0c;直接看手冊 注意&#xff1a;本文參考2024年第15屆比賽手冊講解&#xff0c;沒有英文基礎也沒關系 每一個外設會在第一張時序圖中詳細講解&#xff0c;后續簡寫&…

【DevOps】深入理解 Nginx Location 塊:配置示例與應用場景詳解

目錄 一、location 塊的基本概念 二、location 塊的語法 三、location 塊的匹配方式 四、location 塊的優先級 五、location 塊的應用場景 六、location 塊的嵌套 七、location 塊的指令 八、示例配置 Nginx 是一個高性能的 Web 服務器和反向代理服務器&#xff0c;它廣…

網站工作原理

web發展史 1.0時代不可修改 2.0可修改&#xff0c;比如發微博 有以下問題&#xff1a; 課程2&#xff1a; 靜態頁面 html 動態頁面 php 經過服務端的語言解釋器&#xff0c;解析成html文件&#xff0c;剩下的就和靜態流程一樣 后面三個是web服務器&#xff0c;語言解釋器&…

邊緣人工智能中的視頻目標檢測方法詳解

隨著邊緣計算和人工智能技術的發展&#xff0c;視頻目標檢測在邊緣設備上的應用變得越來越普遍。這些應用包括智能監控、自動駕駛、無人機巡檢等。為了在資源受限的邊緣設備上實現高效的目標檢測&#xff0c;選擇合適的算法和工具至關重要。本文將詳細介紹幾種適用于邊緣設備的…

算法刷題day53:樹形DP

目錄 引言一、沒有上司的舞會二、樹的重心三、樹的最長路徑四、樹的中心五、數字轉換 引言 關于這個樹形 D P DP DP 啊&#xff0c;其實感覺就是對樹進行 D F S DFS DFS 只不過有一個返回值罷了&#xff0c;這個返回值一般代表的就是以該結點為根的子樹的一個屬性&#xff0…