Skip to content

Instantly share code, notes, and snippets.

@hackerdem
Created May 1, 2016 09:07
Show Gist options
  • Save hackerdem/aeca7bdfe03bb3da9c289dc3a00a8f82 to your computer and use it in GitHub Desktop.
Save hackerdem/aeca7bdfe03bb3da9c289dc3a00a8f82 to your computer and use it in GitHub Desktop.
python script with a GUI to search a keyword in files
from tkinter import *
import os
from tkinter.filedialog import askdirectory
from tkinter import messagebox
import subprocess
def content_analyser(pat):
with open(pat,'r') as f:
try:
for line in f:
if search in line:
d.update()
d.insert(END, pat)
break
except:
pass
def smali_finder(pat):
try:
for file in os.listdir(pat):
spat=pat+'/'+file
if os.path.isdir(spat):
smali_finder(spat)
else:
if file.endswith(".smali"):
content_analyser(spat)
except Exception as e:
print ("Error:::",pat,e)
def fing(path):
global search
if search_word.get()=='':
var=messagebox.showwarning(message="Please a search word")
else:
search=search_word.get()
smali_finder(path)
def save_list():
with open("saved_result","w") as sfile:
sfile.write('\n'.join(d.get(0,END)))
var=messagebox.showwarning(message="File names are saved as {}".format("saved_result.txt"))
def chose_folder():
global path
foldername = askdirectory()
path=foldername
folder_name.delete(0,END)
folder_name.update()
folder_name.insert(END, path)
if __name__=="__main__":
parent=Tk()
parent.title('File Finder')
Label(parent,text="Folder name: ").grid(row=0,column=0,sticky='e')
folder_name=Entry(parent,width=20)
folder_name.grid(row=0,column=1,padx=2,pady=2,sticky='we',columnspan=9)
Label(parent,text="Search word: ").grid(row=1,column=0,sticky='e')
search_word=Entry(parent,width=20)
search_word.grid(row=1,column=1,padx=2,pady=2,sticky='we',columnspan=9)
Label(parent,text="Search Results: ").grid(row=3,column=0,sticky='e')
d=Listbox(parent,width=125,height=20)
d.grid(row=4,column=3,padx=2,pady=2,sticky='we',columnspan=9)
Button(parent,text="Folder",command=lambda:chose_folder()).grid(row=0,column=10,sticky='e'+'w',padx=2,pady=2,)
start=Button(parent,text="Start",command=lambda:fing(path)).grid(row=1,column=10,sticky='e'+'w',padx=2,pady=2,)
save=Button(parent,text="Save",command=lambda:save_list())
save.grid(row=2,column=10,sticky='e'+'w',padx=2,pady=2)
Button(parent,text="Exit",command=parent.destroy).grid(row=3,column=10,sticky='e'+'w',padx=2,pady=2)
parent.mainloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment