用关键字批量搜索PDF文件,安装哪个库好?
用关键字批量搜索PDF文件,安装哪个库好? 在Python中,你可以使用PyPDF2库来处理PDF文件。它提供了一些有用的功能,如从PDF文件中提取文本、搜索关键字等。要安装PyPDF2库,你可以使用pip命令,在命令行中运行以下命令:
pip install PyPDF2
安装完成后,你就可以在Python脚本中导入PyPDF2库并开始使用它来搜索PDF文件了。下面是一个简单的示例代码,演示了如何使用PyPDF2库搜索关键字:
import PyPDF2
def search_keywords_in_pdf(file_path, keywords):
with open(file_path, 'rb') as file:
pdf_reader = PyPDF2.PdfReader(file)
for page in pdf_reader.pages:
text = page.extract_text()
for keyword in keywords:
if keyword in text:
print(f"Found '{keyword}' in {file_path} (Page {page.page_number})")
# 搜索关键字列表
keywords = ['keyword1', 'keyword2']
# 搜索指定文件夹下的所有PDF文件
folder_path = '/path/to/pdf/folder'
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']
for file_name in pdf_files:
file_path = folder_path + '/' + file_name
search_keywords_in_pdf(file_path, keywords)
在上面的代码中, search_keywords_in_pdf 函数接受一个PDF文件路径和一个关键字列表作为参数,然后使用PyPDF2库打开PDF文件并逐页搜索关键字。如果找到匹配的关键字,就会打印出相应的信息。
你可以将上述代码保存为Python脚本,根据你的实际情况修改文件路径和关键字列表,并运行脚本来搜索PDF文件中的关键字。 你可以安装PyPDF2库来实现用关键字批量搜索PDF文件。这是一个常用的Python库,提供了读取和操作PDF文件的功能。安装PyPDF2库的方法是运行以下命令:
pip install PyPDF2
安装完成后,你就可以使用PyPDF2库编写代码来批量搜索PDF文件了。以下是使用PyPDF2库进行关键字批量搜索PDF文件的示例代码:
import os
from PyPDF2 import PdfFileReader
def search_keywords_in_pdf(directory, keyword):
files = os.listdir(directory)
for file in files:
if file.endswith('.pdf'):
file_path = os.path.join(directory, file)
with open(file_path, 'rb') as f:
pdf = PdfFileReader(f)
for page_num in range(pdf.getNumPages()):
page = pdf.getPage(page_num)
text = page.extractText()
if keyword in text:
print(f"Keyword '{keyword}' found in {file} (Page {page_num + 1})")
# 指定要搜索的目录和关键字
directory = '/path/to/pdf/files/directory'
keyword = 'your_keyword'
search_keywords_in_pdf(directory, keyword)
在这个示例代码中,你需要将`/path/to/pdf/files/directory`替换为包含你的PDF文件的目录路径,将`your_keyword`替换为你要搜索的关键字。运行代码后,它会遍历指定目录中的所有PDF文件,并在每个文件的每一页中搜索关键字,如果找到匹配的关键字,则打印出文件名和页码。
请确保已安装PyPDF2库并将代码中的目录路径和关键字替换为你自己的实际值。 批量搜索文件的话,可以用glob库(自带的,不用安装、)
import glob
# 搜索当前目录下以关键字"keyword"开头的所有文件
files = glob.glob("keyword*.pdf")
# 打印搜索结果
for file in files:
print(file)
本帖最后由 ssqchina 于 2023-7-10 12:29 编辑
sfqxx 发表于 2023-7-10 00:09
你可以安装PyPDF2库来实现用关键字批量搜索PDF文件。这是一个常用的Python库,提供了读取和操作PDF文件的功 ...
import os
from PyPDF2 import PdfFileReader #类名用大写字母开头
def search_keywords_in_pdf(directory, keyword):
files = os.listdir(directory)
for file in files:
if file.endswith('.pdf'):
file_path = os.path.join(directory, file)
with open(file_path, 'rb') as f:
pdf = PdfFileReader(f)
for page_num in range(pdf.getNumPages()):
page = pdf.getPage(page_num)
text = page.extractText()
if keyword in text:
print(f"Keyword '{keyword}' found in {file} (Page {page_num + 1})")
search_keywords_in_pdf('E:\\报表\\','工资')
"C:\Program Files (x86)\Python39-32\python.exe" D:\Python\PDF文档搜索.py
Traceback (most recent call last):
File "D:\Python\PDF文档搜索.py", line 17, in <module>
search_keywords_in_pdf('E:\\报表\\','工资')
File "D:\Python\PDF文档搜索.py", line 10, in search_keywords_in_pdf
pdf = PdfFileReader(f)
File "C:\Users\ssq\AppData\Roaming\Python\Python39\site-packages\PyPDF2\_reader.py", line 1974, in __init__
deprecation_with_replacement("PdfFileReader", "PdfReader", "3.0.0")
File "C:\Users\ssq\AppData\Roaming\Python\Python39\site-packages\PyPDF2\_utils.py", line 369, in deprecation_with_replacement
deprecation(DEPR_MSG_HAPPENED.format(old_name, removed_in, new_name))
File "C:\Users\ssq\AppData\Roaming\Python\Python39\site-packages\PyPDF2\_utils.py", line 351, in deprecation
raise DeprecationError(msg)
PyPDF2.errors.DeprecationError: PdfFileReader is deprecated and was removed in PyPDF2 3.0.0. Use PdfReader instead.
进程已结束,退出代码1 ssqchina 发表于 2023-7-10 12:17
import os
from PyPDF2 import PdfFileReader #类名用大写字母开头
你遇到的错误是由于PyPDF2库的更新导致的。在PyPDF2版本3.0.0中,PdfFileReader类已经被弃用并移除了,需要使用PdfReader类代替。
以下是修改后的示例代码:
import os
from PyPDF2 import PdfReader
def search_keywords_in_pdf(directory, keyword):
files = os.listdir(directory)
for file in files:
if file.endswith('.pdf'):
file_path = os.path.join(directory, file)
with open(file_path, 'rb') as f:
pdf = PdfReader(f)
for page_num, page in enumerate(pdf.pages, start=1):
text = page.extract_text()
if keyword in text:
print(f"Keyword '{keyword}' found in {file} (Page {page_num})")
# 指定要搜索的目录和关键字
directory = '/path/to/pdf/files/directory'
keyword = 'your_keyword'
search_keywords_in_pdf(directory, keyword)
同样,请将`/path/to/pdf/files/directory`替换为包含你的PDF文件的目录路径,将`your_keyword`替换为你要搜索的关键字。代码会遍历指定目录中的所有PDF文件,并在每个文件的每一页中搜索关键字,如果找到匹配的关键字,则打印出文件名和页码。
请注意,确保已安装最新版本的PyPDF2库,并将代码中的目录路径和关键字替换为你自己的实际值。 sfqxx 发表于 2023-7-10 12:53
你遇到的错误是由于PyPDF2库的更新导致的。在PyPDF2版本3.0.0中,PdfFileReader类已经被弃用并移除了,需 ...
import os
from PyPDF2 import PdfReader
def search_keywords_in_pdf(directory, keyword):
files = os.listdir(directory)
for file in files:
if file.endswith('.pdf'):
file_path = os.path.join(directory, file)
with open(file_path, 'rb') as f:
pdf = PdfReader(f)
for page_num, page in enumerate(pdf.pages, start=1):
text = page.extract_text() #用extract_text函数获取当前页的文本内容
if keyword in text:
print(f"Keyword '{keyword}' found in {file} (Page {page_num})")
search_keywords_in_pdf('F:\\', '工资')
运行没有错误,但是找不到东西 是不是路径不对? isdkz 发表于 2023-7-9 23:26
在Python中,你可以使用PyPDF2库来处理PDF文件。它提供了一些有用的功能,如从PDF文件中提取文本、搜索关键 ...
你这个指定文件名?比如我要搜索d:\报表文件夹下所有PDF文件 怎么改? ssqchina 发表于 2023-7-10 14:05
你这个指定文件名?比如我要搜索d:\报表文件夹下所有PDF文件 怎么改?
如果你要搜索 d:\报表文件夹 下的所有PDF文件,可以使用 os 库来列出该文件夹下的所有PDF文件,然后对每个文件进行搜索。
以下是修改后的代码示例:
import os
import PyPDF2
def search_keywords_in_pdf(file_path, keywords):
with open(file_path, 'rb') as file:
pdf_reader = PyPDF2.PdfReader(file)
for page in pdf_reader.pages:
text = page.extract_text()
for keyword in keywords:
if keyword in text:
print(f"Found '{keyword}' in {file_path} (Page {page.page_number})")
# 搜索关键字列表
keywords = ['keyword1', 'keyword2']
# 搜索指定文件夹下的所有PDF文件
folder_path = r'd:\报表文件夹'
for root, dirs, files in os.walk(folder_path):
for file_name in files:
if file_name.endswith('.pdf'):
file_path = os.path.join(root, file_name)
search_keywords_in_pdf(file_path, keywords)
在上述代码中,我们使用 os.walk 函数遍历了指定文件夹及其子文件夹下的所有文件。然后,我们判断每个文件是否以 .pdf 为扩展名,如果是,则使用 os.path.join 函数构建文件的完整路径,并将其传递给 search_keywords_in_pdf 函数进行搜索。
请注意, folder_path 变量前面的 r 表示原始字符串,用于处理路径中的转义字符。
你可以将上述代码保存为Python脚本并运行,以搜索 d:\报表文件夹 下的所有PDF文件中的关键字。记得将 keywords 列表替换为你要搜索的实际关键字列表。 sfqxx 发表于 2023-7-10 12:53
你遇到的错误是由于PyPDF2库的更新导致的。在PyPDF2版本3.0.0中,PdfFileReader类已经被弃用并移除了,需 ...
问题找到了,就是if file.endswith('.pdf'):中的PDF大写和小写 搜索结果还不一样,这个怎么改? ssqchina 发表于 2023-7-10 15:36
问题找到了,就是if file.endswith('.pdf'):中的PDF大写和小写 搜索结果还不一样,这个怎么改?
你遇到的问题是因为文件扩展名的大小写导致的匹配错误。在Windows系统中,文件扩展名的大小写通常是不敏感的,而在其他操作系统(如Linux)中是区分大小写的。
要解决这个问题,你可以在比较文件扩展名时忽略大小写。可以使用`.lower()`函数将文件扩展名转换为小写来实现。
以下是修改后的代码示例:
import os
from PyPDF2 import PdfReader
def search_keywords_in_pdf(directory, keyword):
files = os.listdir(directory)
for file in files:
if file.lower().endswith('.pdf'):#忽略文件扩展名大小写
file_path = os.path.join(directory, file)
with open(file_path, 'rb') as f:
pdf = PdfReader(f)
for page_num, page in enumerate(pdf.pages, start=1):
text = page.extract_text()
if keyword in text:
print(f"Keyword '{keyword}' found in {file} (Page {page_num})")
# 指定要搜索的目录和关键字
directory = '/path/to/pdf/files/directory'
keyword = 'your_keyword'
search_keywords_in_pdf(directory, keyword)
请将`/path/to/pdf/files/directory`替换为包含你的PDF文件的目录路径,将`your_keyword`替换为你要搜索的关键字。使用`.lower()`函数将文件扩展名转换为小写,使得无论文件扩展名是大写还是小写,都能正确匹配。
同样,请确保已安装最新版本的PyPDF2库,并将代码中的目录路径和关键字替换为你自己的实际值。
页:
[1]