我想读取“D:\点宽学院”这个文件下所有PDF的内容,先把所有读取到的内容合并成一个字符串,然后用中文或英文句号进行分割,把分割后的内容一一打印出来,用python实现,不能用pypdf2库和subprocess库
时间: 2023-06-17 16:06:49 浏览: 95
你可以使用pdfminer库来解析PDF文件并获取文本内容,然后使用正则表达式分割文本内容。下面是一个示例代码:
```python
import os
import re
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
# 定义一个函数,用于读取PDF文件并返回文本内容
def read_pdf_file(file_path):
resource_manager = PDFResourceManager()
output_string = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(resource_manager, output_string, codec=codec, laparams=laparams)
with open(file_path, 'rb') as input_file:
interpreter = PDFPageInterpreter(resource_manager, device)
for page in PDFPage.get_pages(input_file):
interpreter.process_page(page)
text = output_string.getvalue()
device.close()
output_string.close()
return text
# 定义一个函数,用于分割文本内容并打印出来
def print_text_content(text):
pattern = r'[\n。.?!!?]+'
sentences = re.split(pattern, text)
for sentence in sentences:
sentence = sentence.strip()
if sentence:
print(sentence)
print()
# 遍历文件夹,读取所有的PDF文件并合并文本内容
file_dir = r'D:\点宽学院'
text = ''
for filename in os.listdir(file_dir):
if filename.endswith('.pdf'):
file_path = os.path.join(file_dir, filename)
text += read_pdf_file(file_path)
# 分割文本内容并打印出来
print_text_content(text)
```
这个代码会遍历“D:\点宽学院”文件夹下的所有PDF文件,并把它们的文本内容合并成一个字符串。然后使用正则表达式分割文本内容,并把分割后的内容一一打印出来。
阅读全文