使用 Python 和 PyQt 構建批次檔案重新命名工具


批次檔案重新命名可能是一個費力且耗時的過程。但是,藉助 Python 和 PyQt,我們可以建立一個自動化並簡化此過程的批次檔案重新命名工具。

本文將探討使用 Python 和 PyQt 建立批次檔案重新命名工具的分步過程。透過利用 Python 的檔案處理功能和使用者友好的 PyQt 框架,我們可以開發一個工具,使我們能夠快速有效地重新命名多個檔案。在整篇文章中,我們將指導您完成開發環境設定、檔案重新命名邏輯實現以及使用 PyQt 建立直觀的使用者介面。在本文結束時,您將擁有一個功能齊全的批次檔案重新命名工具,該工具可以節省您在管理和組織檔案方面寶貴的時間和精力。準備好使用 Python 和 PyQt 簡化您的檔案重新命名任務,併為您的數字檔案集合帶來秩序吧。

先決條件

在深入構建工具之前,建議您具備 Python 程式設計和 PyQt 的基本知識。熟悉 Python 中的檔案處理操作也將有所幫助。

設定環境

首先確保您的計算機上已安裝 Python 和 PyQt。執行以下命令使用 pip 等包管理器安裝 PyQt

pip install pyqt5

此外,我們將使用 os 模組,該模組包含在 Python 標準庫中。

建立使用者介面

第一步是為我們的批次檔案重新命名工具設計使用者介面。PyQt 中提供了各種小部件來建立互動式圖形應用程式。您可以啟動一個新的 Python 檔案,並按如下所示匯入所需模組

from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QFileDialog

接下來,建立一個繼承自 QMainWindow 類的類,並設定 UI 元件

class FileRenameTool(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Bulk File Rename Tool")
        self.resize(400, 200)
        
        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        
        self.layout = QVBoxLayout()
        
        self.label = QLabel("Enter new file name:")
        self.layout.addWidget(self.label)
        
        self.line_edit = QLineEdit()
        self.layout.addWidget(self.line_edit)
        
        self.button = QPushButton("Rename Files")
        self.button.clicked.connect(self.rename_files)
        self.layout.addWidget(self.button)
        
        self.central_widget.setLayout(self.layout)

FileRenameTool 類表示我們應用程式的主視窗。重新命名過程中僅包含一個標籤、一個行編輯小部件和一個按鈕。

實現檔案重新命名邏輯

現在我們的使用者介面已準備就緒,我們需要實現批次檔案重新命名的邏輯。將以下方法新增到 FileRenameTool 類中

    def rename_files(self):
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.DirectoryOnly)
        
        if file_dialog.exec_():
            directory = file_dialog.selectedFiles()[0]
            new_name = self.line_edit.text()
            
            for filename in os.listdir(directory):
                file_path = os.path.join(directory, filename)
                
                if os.path.isfile(file_path):
                    file_extension = os.path.splitext(filename)[1]
                    new_file_name = new_name + file_extension
                    new_file_path = os.path.join(directory, new_file_name)
                    
                    os.rename(file_path, new_file_path)

此方法由“重新命名檔案”按鈕啟動。它會啟動一個檔案對話方塊,您可以在其中選擇包含要重新命名的檔案的目標目錄。它從行編輯小部件中獲取新輸入的名稱後,迭代遍歷目錄中的每個檔案。它透過附加輸入的名稱和原始副檔名來為每個檔案建立一個新的檔名。然後使用 os.rename() 函式重新命名檔案。

執行應用程式

要執行應用程式,請在 Python 檔案末尾新增以下程式碼

if __name__== "__main__":
    app = QApplication([])
    window = FileRenameTool()
    window.show()
    app.exec_()

將檔案儲存為 .py 副檔名並執行它。批次檔案重新命名工具視窗將出現,允許您輸入新的檔名並啟動重新命名過程。

增強批次檔案重新命名工具的其他功能

  • 檔案過濾選項

    能夠根據特定條件過濾檔案是應該新增到批次檔案重新命名工具中的一個有用功能。例如,您可以允許使用者根據檔案大小、副檔名、建立日期或修改日期過濾檔案。透過此過濾功能,使用者可以針對特定檔案進行重新命名,從而更好地控制該過程。

  • 預覽功能

    新增預覽功能允許使用者在實際重新命名檔案之前檢視將應用的更改。這有助於防止意外更改,併為使用者提供機會審查建議的新檔名。您可以顯示一個預覽視窗或一個列表,其中顯示原始檔名以及用於驗證的新檔名。

  • 批次重新命名模式

    透過允許使用者使用批次重新命名模式,可以使該工具更具適應性。使用者可以使用批次重新命名模式在新檔名中包含變數和佔位符。例如,您可以使用順序編號、日期/時間戳或自定義文字插入等模式來自動化重新命名過程。此靈活性允許使用者在各種檔案中應用一致的命名約定。

  • 撤消/重做功能

    錯誤總會發生,而撤消/重做功能可以成為救星。透過實現此功能,如果使用者意識到自己犯了錯誤或想要恢復到原始檔名,則可以撤消重新命名過程中所做的更改。它在檔案重新命名過程中提供了額外的安全性和安心感。

結論

本文探討了如何使用 Python 和 PyQt 構建批次檔案重新命名工具。我們設定了開發環境,使用 PyQt 設計了使用者介面,並使用 Python 的 os 模組實現了檔案重新命名邏輯。該工具允許選擇目錄並輸入新的檔名,它透過附加輸入的名稱和原始副檔名來重新命名每個檔案。我們還討論了使用檔案過濾選項和預覽功能等功能來增強該工具。透過使用此工具,您可以在重新命名大量檔案時節省時間和精力,從而使檔案管理更加便捷和高效。

更新於: 2023年7月19日

162 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告