我有一个代码来搜索.pdf
文件阅读内部数据的pdf文件。我的解决方案给我正确的文件,但它是缓慢的。有没有办法使它更快?
keyword = keyword.lower()
for subdir, dirs, files in os.walk(folder_path):
for file in files:
filepath = subdir + os.sep + file
fpath = subdir + os.sep
if(keyword in file.lower()):
if filepath not in tflist:
tflist.append(os.path.join(filepath))
if filepath.endswith(".pdf"):
if filepath not in tflist:
with open(os.path.join(fpath,file), "rb") as f:
reader = PyPDF2.PdfFileReader(f)
for i in range(reader.getNumPages()):
page = reader.getPage(i)
page_content = page.extractText().lower()
if(keyword in page_content):
tflist.append(os.path.join(filepath))
break
#print (str(1+reader.getPageNumber(page)))
#print(keyword)
print(tflist)
1条答案
按热度按时间csbfibhn1#
您可以使用
multiprocessing.Pool
。将代码分成两部分,第一部分使用
os.walk
生成路径列表,我们将其命名为list_of_filenames
。第二部分是一个函数,它读取文件并根据条件返回每页的文件名和
True
或False
:像这样使用它:
假设您的CPU有 n 个内核,这将比一次处理一个文件快大约 n 倍。