1提取pdf的所有内容
参考Python使用PyPDF2库进行PDF文件操作的详细教程-腾讯云开发者社区-腾讯云
pythonCopy codeimport PyPDF2
def extract_text(pdf_file):
with open(pdf_file, 'rb') as file:
pdf_reader = PyPDF2.PdfFileReader(file)
text = ''
for page_num in range(pdf_reader.numPages):
text += pdf_reader.getPage(page_num).extractText()
return text
# 使用示例
pdf_file = 'sample.pdf'
text_content = extract_text(pdf_file)
print(text_content)
这段代码定义了一个名为 extract_text
的函数,其目的是从一个PDF文件中提取文本内容。这个函数接受一个参数 pdf_file
,这个参数预期是一个字符串,表示PDF文件的路径。下面是对这段代码的详细解释:
-
with open(pdf_file, 'rb') as file:
这一行使用Python的
with
语句来打开一个文件。with
语句确保文件在使用后会被正确关闭,即使在处理文件时发生异常也是如此。open
函数的第一个参数pdf_file
是文件路径,它由函数的输入参数提供。第二个参数'rb'
是模式参数,表示以“二进制只读模式”打开文件。这是读取二进制文件(如PDF)所必需的。as file
部分将打开的文件对象赋值给变量file
,以便在代码块中使用。 -
pdf_reader = PyPDF2.PdfFileReader(file)
这一行使用
PyPDF2
库创建了一个PdfFileReader
对象。这个对象用于读取PDF文件的内容。PyPDF2.PdfFileReader
是PyPDF2
库中用于解析PDF文件的类。我们将这个对象赋值给变量pdf_reader
。 -
text = ''
这里初始化一个空字符串
text
,它将用于累积从PDF的每一页提取的文本。 -
for page_num in range(pdf_reader.numPages):
这是一个
for
循环,它遍历pdf_reader
中的所有页面。pdf_reader.numPages
属性返回PDF文件中的页面总数。range
函数创建一个从0开始到页面总数(不包括总数)的整数序列,每个整数代表一个页面的编号。 -
text += pdf_reader.getPage(page_num).extractText()
在循环内部,我们使用
pdf_reader
对象的getPage
方法来获取当前页面(由page_num
指定)。然后,我们调用extractText
方法来提取当前页面的文本内容。extractText
方法返回一个字符串,包含页面上的所有文本。我们使用+=
操作符将这个字符串追加到text
变量中。 -
return text
最后,当所有页面的文本都被提取并累积到
text
变量后,函数返回这个字符串。这意味着,函数的调用者将收到一个包含整个PDF文件文本内容的字符串。
需要注意的是,extractText
方法的效果可能因PDF文件的不同而有所差异。
但是文档字数过多,全部提取会造成大量的信息冗余,因此需要截取特定字符串之间的数据
2切片提取指定文字
# 示例字符串
string = "Hello, World! This is an example string."
# 查找子字符串的索引位置
index = string.find("This is")