import os def searchfiles(wit, folder): "Create a txt file with all the file of a type" outputfile = wit + "_found.html" with open(outputfile, "w", encoding="utf-8") as txt_file_with_list: fn_list = "" for r, d, f in os.walk(folder): fn_list += f"<h3>{r}</h3>" for file in f: if wit in file: site = f"{r}\\{file}" fn_list += f"<br><a href={site}>{site}</a>" txt_file_with_list.write(fn_list) os.startfile(outputfile) return fn_list # you can put the extension or any word in title searchfiles('.py', 'H:\\pylearning\\')
In this version you have only the list of files in a txt file.
import os def searchfiles(wit, folder): "Create a txt file with all the file of a type" outputfile = wit + "_found.txt" with open(outputfile, "w", encoding="utf-8") as txt_file_with_list: fn_list = "" for r, d, f in os.walk(folder): fn_list += f"\n{'-'*30}\n{r}\n{' '*30}\n" for file in f: if wit in file: fn_list += f"\t{r}\\{file}\n" txt_file_with_list.write(fn_list) os.startfile(outputfile) return fn_list # you can put the extension or any word in title searchfiles('.py', 'H:\\pylearning\\')
In this version we made a little GUI with tkinter
import os from operator import itemgetter import tkinter as tk def listOfFiles(wit, folder): """args: 1) word to search 2) folder to start search""" outputfile = wit + "_found.txt" with open(outputfile, "w", encoding="utf-8") as txt_file_with_list: fn_list = "" rfn_list = [] for r, d, f in os.walk(folder): fn_list += f"\n---------------------------------\n{r}\n\n" for file in f: if wit in file: fn_list += f"\t{r}\\{file}\n" rfn_list.append([r,file]) txt_file_with_list.write(fn_list) os.startfile(outputfile) return rfn_list def curselect(evt): value=str((lb.get(lb.curselection()))) os.startfile(value) # ---------------------- G.U.I. -------------------------- root = tk.Tk() root.title("SearchFile") root.geometry("400x400+400+400") scrollbar = tk.Scrollbar(root, orient=tk.VERTICAL) lb = tk.Listbox(root, yscrollcommand=scrollbar.set) scrollbar.config(command=lb.yview) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) lb.pack(side=tk.LEFT, fill=tk.BOTH, expand=1) lb.bind('<<ListboxSelect>>', curselect) fn_list = sorted(listOfFiles(".py","H:\\pylearning\\"), key=itemgetter(1), reverse=True) for f in fn_list: lb.insert(0,f[0]+"\\"+f[1]) root.mainloop() # you can put the extension or any word in title #searchfiles('.py', 'H:\\pylearning\\')