跨平臺文件搜索工具

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from Tkinter import *
import tkMessageBox
import tkFileDialog
import os
import fnmatch
from ScrolledText import ScrolledText

def func():
    str1 = ent1.get()
    str2 = ent2.get()
    if not (str1 and str2):  #not str1 or not str2 ,當前兩個值都不可以爲空。
        tkMessageBox.showinfo('溫馨提示','請先輸入查詢的關鍵字和文件類型再選擇文件夾!')
        return
    fn = tkFileDialog.askdirectory() #選擇一個文件夾路徑
    
    if not fn:
        return
    listbox.delete(0,END)
    fnlist = os.walk(fn)
    for root,dirs,files in fnlist:
        for i in fnmatch.filter(files,str2):  #過濾,指定文件類型。
            f = open(root + "/" + i).read()
            if str1 in f:
                listbox.insert(END,root + "/" + i)

def func2(e):
    if not listbox.curselection():
        return
    window = Tk()
    window.title("文件查看")
    text = ScrolledText(window,width=100) #帶滾動條的多行文本框
    text.grid()
    path = listbox.get(listbox.curselection(),last=None)
    fn = open(path)
    text.insert(END,fn.read())
    fn.close()

root = Tk()
root.title("文件搜索工具")
root.geometry("+600+300")
Label(root,text="搜索詞").grid()
ent1 = Entry(root)
ent1.grid(row=0,column=1) #row=橫座標,column=縱座標

Label(root,text="文件類型").grid(row=0,column=2)
ent2 = Entry(root)
ent2.grid(row=0,column=3)
btn = Button(root,text="選擇文件",command=func)
btn.grid(row=0,column=4)
var1 = StringVar()
listbox = Listbox(root,width=80)
listbox.bind("<Double-Button-1>",func2)
listbox.grid(row=1,column=0,columnspan=5)
#grid=網格佈局
root.mainloop()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章