PDF转TXT ChatGPT编程

文章讲述了如何利用Python和ChatGPT的功能,通过编程将PDF文件转换为TXT格式,特别关注了如何处理PDF中的换行符和识别中文句号,以提供更好的阅读体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.目的

在Z-library找到一本书,只不过是PDF格式的,看的时候体验不好,还没有办法保存记录,就想着能不能转成txt格式放到手机自带的小说软件中看。
不想去网上找相关的软件,可以还需要付钱,所以尝试用ChatGPT来实现。

2.ChatGPT编程

提示词1:

我现在有一本书,格式是PDF的,需要把它转成TXT格式的,用python实现

生成代码 

import PyPDF2

# 打开PDF文件
pdf_file = open('noteacher.pdf', 'rb')

# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 创建一个空字符串来存储文本内容
text = ''

# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    text += page.extract_text()

# 关闭PDF文件
pdf_file.close()

# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:
    txt_file.write(text)

在上面的代码中,您需要将your_pdf_file.pdf替换为您要转换的PDF文件的路径。执行代码后,将生成一个名为output_text_file.txt的TXT文件,其中包含从PDF中提取的文本内容。 

txt效果不太好,PDF格式转变时是按照一定数目符号来进行换行,所以观看效果很割裂

 提示词2:

对于生成的txt文件,需要改变换行方式,先取消txt文件的换行,之后每识别到一个。才进行换行

 生成代码

import PyPDF2

# 打开PDF文件
pdf_file = open('your_pdf_file.pdf', 'rb')

# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 创建一个空字符串来存储文本内容
text = ''

# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    text += page.extract_text()

# 关闭PDF文件
pdf_file.close()

# 替换所有换行符为空白字符
text = text.replace('\n', ' ')

# 在每个识别到的换行符处手动添加换行符
final_text = ''
for char in text:
    if char == '\n':
        final_text += '\n'
    else:
        final_text += char

# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:
    txt_file.write(final_text)

此代码将先将所有的换行符替换为空白字符,然后在每个识别到的换行符处手动添加换行符,以满足您的需求。请替换your_pdf_file.pdf为您的PDF文件路径,并执行代码以生成TXT文件。

确实把换行符都换成了空白字符,但是并没有识别出“。”,也就没办法换行了 

 继续改进,提示词3:

识别到句号。这个符号才进行换行

生成代码

import PyPDF2

# 打开PDF文件
pdf_file = open('your_pdf_file.pdf', 'rb')

# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 创建一个空字符串来存储文本内容
text = ''

# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    text += page.extract_text()

# 关闭PDF文件
pdf_file.close()

# 替换所有换行符为空白字符
text = text.replace('\n', ' ')

# 在识别到句号时添加换行符
final_text = ''
for char in text:
    final_text += char
    if char == '.':
        final_text += '\n'

# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:
    txt_file.write(final_text)

效果同样不好,检查了一下,代码中的句号是英文的句号“.”,但是PDF中是中文的句号“。” 

将英文句号改成中文句号 ,代码为:

import PyPDF2

# 打开PDF文件
pdf_file = open('noteacher.pdf', 'rb')

# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 创建一个空字符串来存储文本内容
text = ''

# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):
    page = pdf_reader.pages[page_num]
    text += page.extract_text()

# 关闭PDF文件
pdf_file.close()

# 替换所有换行符为空白字符
text = text.replace('\n', ' ')

# 在识别到句号时添加换行符
final_text = ''
for char in text:
    final_text += char
    if char == '。':
        final_text += '\n'

# 将提取的文本内容写入TXT文件
with open('output_text_file4.txt', 'w', encoding='utf-8') as txt_file:
    txt_file.write(final_text)

这个看起来还行  

驾驭ChatGPT学会使用提示词PDF非常简单。首先,确保你已经正确安装了OpenAI的ChatGPT API,并已经获取了API密钥。接下来,你需要准备一个包含提示词的PDF文档,并确保该文档的大小不超过API的限制。 然后,你可以使用Python编程语言编写一个脚本来与ChatGPT API进行通信。通过调用API的适当端点,你可以将PDF文档作为输入传递给ChatGPT,并指定你希望它使用的提示词。这可以通过在请求中设置适当的参数来实现。 示例代码如下: ``` import openai # 设置你的API密钥 openai.api_key = 'YOUR_API_KEY' # 定义PDF文件路径和提示词 pdf_path = 'path/to/your/pdf/file.pdf' prompts = ['Prompt 1', 'Prompt 2', 'Prompt 3'] # 读取PDF文件内容 with open(pdf_path, 'rb') as f: pdf_content = f.read() # 将PDF内容和提示词传递给ChatGPT response = openai.Completion.create( engine='text-davinci-003', # 选择适当的引擎 prompt=pdf_content, max_tokens=100, # 设置返回的响应长度 n=1, # 设置生成的响应数目 stop=None, # 设置停止标记符,如果需要的话 temperature=0.7, # 设置温度参数,控制生成的多样性 log_level="info", # 可选的日志级别参数 logprobs=0, # 设置是否返回概率信息 model=None, # 可选的模型参数 temperature=0.7 # 设置温度参数,控制生成的多样性 ) # 提取生成的响应 reply = response.choices[0].text.strip() # 打印生成的回复 print(reply) ``` 以上代码只是一个简单的示例,你可以根据你的实际需求进行调整。注意,在实际使用中,你可能需要对PDF内容进行适当的处理和解析,以便更好地与ChatGPT进行交互。 这就是驾驭ChatGPT学会使用提示词PDF的基本步骤。通过使用这些技巧,你可以更好地利用ChatGPT API来生成有关于给定主题的详细回复。祝你使用愉快!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值