ssqchina 发表于 2023-7-21 23:48:26

帮我看看错哪了?

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

Mike_python小 发表于 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()函数正确接收两个必需的参数。

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

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 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函数将提取的文本保存到文件中。
页: [1]
查看完整版本: 帮我看看错哪了?