在現代軟件開發中,圖形用戶界面 (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. 代碼解釋
讓我們逐步解釋這段代碼的主要部分:
-
導入模塊:
import wx import os
wx
模塊用于創建圖形界面。os
模塊用于操作文件和目錄。
-
創建主窗口類
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__
方法:初始化窗口,創建按鈕并綁定事件。
-
按鈕點擊事件處理:
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
方法。
- 當按鈕被點擊時,打開文件夾選擇對話框,并調用
-
文件重命名邏輯:
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
。
- 遍歷選定文件夾中的所有文件,將
-
應用啟動:
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!