我对python比较陌生,但是我决定尝试一下biuld这个工作工具,它将在我们的PDF文档的一个子部分中查找用户输入的某些ketwords。
到目前为止,我一次搜索1个关键字效果很好,而且我已经成功地升级了GUI。但是,我不能在文档中搜索超过1个关键字/短语。例如,我想搜索一个名字,这样我就可以输入这个名字,而且效果很好,它birngs我回到所有的PDF文件中出现这个名字(这是伟大的)。但当我试图添加另一个搜索词/短语,我不能得到这个工作。
例如,如果我想搜索系统中的所有史密斯先生,然后搜索药物名称(我在毒理学领域工作),我想输入:史密斯,扑热息痛但这没用.
它只对孤立的史密斯先生有效。我想这是因为它使用的是精确的文本,但我不知道如何添加更多的关键词。
任何帮助是赞赏,我已经张贴了我的代码到目前为止,其中包括所有的图形用户界面的东西
import requests,webbrowser
from bs4 import BeautifulSoup
from tkinter import *
import os
import fitz
import os
import customtkinter
path= r'O:\Sent Questions'
files = os.listdir(path)
customtkinter.set_appearance_mode("dark")
root = customtkinter.CTk()
root.geometry("700x350")
root.title("Questions Keyword Search")
label=customtkinter.CTkLabel(root,text="Questions Keyword Search Engine",font=("Inter",30))
label.pack(side=TOP)
text=StringVar()
def search():
global entry
Search = entry.get()
print(Search)
for file in files:
doc=fitz.open(path+'\\'+file)
for page in doc:
text = page.get_text()
# print(text)
result = text.find(Search)
if result != -1:
print(file)
pass
#need to add another loop the key words for, so for each page in dock again search for more keywords
label_1=customtkinter.CTkLabel(root,text="Enter Keywords Below",font=("Inter",15))
label_1.place(x=275,y=100)
label_2=customtkinter.CTkLabel(root,text="You can input as many as you'd like but they must be in double quotation marks and split by commas",font=("Inter",12))
label_2.place(x=97,y=130)
label_3=customtkinter.CTkLabel(root,text='Example: cocaine, SoHT, LC-MS',font=("Inter",12))
label_3.place(x=250,y=150)
entry=customtkinter.CTkEntry(master=root,width=200)
entry.place(x=252,y=190)
button=customtkinter.CTkButton(master=root,text="Search",command=search)
button.place(x=285,y=230)
root.mainloop()
input("prompt: ")
2条答案
按热度按时间vnzz0bqm1#
您似乎要选择其中提到用户输入的***所有***关键字的页面。
我会要求用户用逗号分隔关键字,不要强制使用双撇号作为分隔符。然后用逗号分隔用户输入,以获得用户关键字列表。为了避免大小写问题,请将所有内容都转换为小写:关键字和提取的文本。您的选择将如下所示:
不确定选择逻辑是否符合您的要求。也许您想不那么严格,如果至少有n-1个关键字或其他东西,就接受一个页面。所以您需要更改选择并在忽略页面之前找到匹配项。
ozxc1zmp2#