鱼C论坛

 找回密码
 立即注册
查看: 1583|回复: 2

[已解决]帮我看看错哪了?

[复制链接]
发表于 2023-7-21 23:48:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from pdf2image import convert_from_path
import pytesseract

# 设置路径
poppler_path = r'C:\Program Files\poppler-23.07.0\Library\bin'
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 将PDF转换为图片
def pdf_to_image(pdf_path):
    images = convert_from_path(pdf_path, poppler_path=poppler_path)


# 对图片进行OCR识别

    text_list = []
    for image in images:
        text = pytesseract.image_to_string(image, lang='chi_sim')
        text_list.append(text)
    return text_list

# 将识别结果保存到文件中
def save_text(text_list, file_path):
    with open(file_path, 'w', encoding='utf-8') as f:
        for text in text_list:
            f.write(text + '\n\n')

# 示例用法
pdf_path = 'f:\\'+input('请输入要转换的文件名')+'.pdf'
output_file = 'f:\\'+input('请输入要保存的文件名')+'.txt'

# 提取简体中文文本
extracted_text = save_text(pdf_path)

# 保存文本到文件
save_text_to_file(extracted_text, output_file)

错误信息
请输入要转换的文件名123
请输入要保存的文件名123
Traceback (most recent call last):
  File "D:\Python\ocr.py", line 31, in <module>
    extracted_text = save_text(pdf_path)
TypeError: save_text() missing 1 required positional argument: 'file_path'

进程已结束,退出代码1
最佳答案
2023-7-21 23:48:33
问题分析:
根据您提供的错误信息,发现了一个潜在的问题。在调用save_text()函数时,缺少了一个必需的参数file_path

解决方案:
请尝试进行以下修改:

1. 将save_text(pdf_path)修改为extracted_text = pdf_to_image(pdf_path),以便获取从PDF提取的文本。

2. 将save_text_to_file(extracted_text, output_file)修改为save_text(extracted_text, output_file),以便将提取的文本保存到文件中。
# 示例用法pdf_path = 'f:\\' + input('请输入要转换的文件名') + '.pdf'output_file = 'f:\\' + input('请输入要保存的文件名') + '.txt'# 提取简体中文文本extracted_text = pdf_to_image(pdf_path)# 保存文本到文件save_text(extracted_text, output_file)
这样可以保证save_text()函数正确接收两个必需的参数。

希望以上修改能够解决您遇到的问题。如果还有其他疑问,请随时提出。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-21 23:48:33 | 显示全部楼层    本楼为最佳答案   
问题分析:
根据您提供的错误信息,发现了一个潜在的问题。在调用save_text()函数时,缺少了一个必需的参数file_path

解决方案:
请尝试进行以下修改:

1. 将save_text(pdf_path)修改为extracted_text = pdf_to_image(pdf_path),以便获取从PDF提取的文本。

2. 将save_text_to_file(extracted_text, output_file)修改为save_text(extracted_text, output_file),以便将提取的文本保存到文件中。
# 示例用法pdf_path = 'f:\\' + input('请输入要转换的文件名') + '.pdf'output_file = 'f:\\' + input('请输入要保存的文件名') + '.txt'# 提取简体中文文本extracted_text = pdf_to_image(pdf_path)# 保存文本到文件save_text(extracted_text, output_file)
这样可以保证save_text()函数正确接收两个必需的参数。

希望以上修改能够解决您遇到的问题。如果还有其他疑问,请随时提出。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-21 23:48:44 | 显示全部楼层
标题:修复您的函数调用问题
内容:

在您的代码中,我看到您在最后的部分调用了错误的函数。 您应该使用  pdf_to_image  函数来获取  extracted_text ,但您实际上使用了  save_text  函数。另外,您使用了一个错误的函数名称  save_text_to_file  来保存提取的文本,实际上您的函数名是  save_text 。

所以,您的代码应该是:
# 示例用法
pdf_path = 'f:\\'+input('请输入要转换的文件名')+'.pdf'
output_file = 'f:\\'+input('请输入要保存的文件名')+'.txt'

# 提取简体中文文本
extracted_text = pdf_to_image(pdf_path)

# 保存文本到文件
save_text(extracted_text, output_file)

这段代码将首先调用  pdf_to_image  函数来从 pdf 中提取文本,然后使用  save_text  函数将提取的文本保存到文件中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表