Python 實現全盤文件搜索


Python 實現全盤文件搜索

1 簡介

配套軟件版本:Python 3.8+pycharm

功        能: 按照輸入的字符對全盤文件進行搜索,將包含輸入字符的文件名稱及其路徑顯示到界面中。

2 PyCharm&Pyqt的配置說明

2.1 模塊安裝

需要安裝模塊pyqt5,designer,

安裝方法:pip install pyqt5

          pip install pyqt5-tools

2.2 按照以下步驟將安裝的模塊設置為external tools

步驟1

打開PyCharm,選擇Settings -> Tools -> External Tools,點擊左上角的綠色加號。

 

 


步驟2

Name填入QtDesigner(方便后續使用,名稱無所謂)。Program選擇我們安裝的PyQt5-tools下面的designer.exe。Working directory填$FileDir$。然后點擊OK,則添加了QtDesigner作為PyCharm的外置工具。

 

 


步驟3

按照同樣的步驟添加PyUIC(UI轉換工具)。(PyUIC的Program為Python.exe,在Python的安裝目錄下面的Scripts目錄下,Working directory $FileName$,Arguments則填入如下代碼:

-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

 

 

 

步驟4

最后添加pyrcc用於PyQt5的資源文件轉碼。具體配置與上述內容相同,Arguments填入:

$FileName$ -o $FileNameWithoutExtension$_rc.py

 

 

 

步驟5

退出之前,點擊Apply保存配置。配置完成之后,PyCharm中會加入3個工具。

可以在Tools-》External Tools中查看

 

3 Desinger實現界面設置

步驟1

打開Pycharm-》Tools-》External Tools-》Qt Designer-》選擇Main Window-》點擊創建。

步驟2

從左邊的Widget Box中分別選擇添加Line Edit/Push Button/List Widget

步驟3

手動調整大小&從上方的工具欄中,選擇參數

 

 

(不同的布局式,水平、垂直、表格)。將窗口調整為適合的布局。(按下ctl +R進行查看)

步驟4:選中步驟2的Widget,在右側的屬性編輯器中,編輯屬性。

如:QMainWindow的window Title:搜索本地文件

 

 

 

Pushbutton的快捷鍵:

 

 

 

步驟4保存文件(.ui文件)

4 Py文件修改

步驟1:在Pycharm選中ui文件,右擊選擇External Tools->PyUIC-》將會在當前目錄中生成對應的py文件

步驟2main文件中import步驟1中檔的py文件,並在main中添加如下命令,點擊運行,查看是否第3中的窗口。

app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = everything.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

 

5 實現文件搜索

我們新建一個 ()的方法search_slot(),將其作為按鈕點擊信號的槽函數。

def search_slot(self):
    start_time = time.time()
    print(start_time)
    kw = self.lineEdit.text()  # 獲取搜索詞
    self.listWidget.clear()
    t = []
    for i in range(65, 91):
        vol = chr(i) + ':'
        if os.path.isdir(vol):
            for root, dirs, files in os.walk(vol, topdown=1):
                for name in files:
                    if kw in name:
                        # print(os.path.join(root, name))
                        pa1 = os.path.join(root, name)
                        t.append(pa1)
                        f = QtWidgets.QListWidgetItem(pa1)  # 創建一個搜索結果項
                        self.listWidget.addItem(f)
    end_time = time.time()
    print(f'程序運行耗時:{(end_time - start_time):.2f}s')

 

接着將按鈕的點擊信號進行綁定:

self.pushButton.clicked.connect(self.search_slot)

 

選中文件:

def click_slot(self):
    print(self.listWidget.currentItem().text())
    os.startfile(str(self.listWidget.currentItem().text()))

打開文件:

self.listWidget.itemClicked['QListWidgetItem*'].connect(self.click_slot)

6 不足,待優化

無法對搜索結果操作,(打開、打開路徑、刪除)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM