【问题标题】:Extracting text then saving to plain text file - TypeError: an integer is required (got type str)提取文本然后保存到纯文本文件 - 类型错误:需要一个整数(获取类型 str)
【发布时间】:2019-08-28 09:45:53
【问题描述】:

我正在将 pdf 转换为文本,并从之前的帖子中获取了此代码:

Extracting text from a PDF file using PDFMiner in python?

当我打印(文本)时,它已经完全按照我的意愿完成了,但是我需要将它保存到一个文本文件中,这就是我收到上述错误的时候。

代码完全遵循链接问题的第一个答案。然后我:

text = convert_pdf_to_txt("GMCA ECON.pdf")

file = open('GMCAECON.txt', 'w', 'utf-8')
file.write(text)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-ebc6b7708d93> in <module>
----> 1 file = open('GMCAECON.txt', 'w', 'utf-8')
  2 file.write(text)

TypeError: an integer is required (got type str)

恐怕这可能很简单,但我想不通。 我希望它将文本写入具有相同名称的文本文件,然后我可以对其进行进一步分析。谢谢。

【问题讨论】:

  • 请编辑您的帖子以包含您获得的完整回溯。

标签: python pdf text pdfminer


【解决方案1】:

问题是你的第三个论点。 open 接受的第三个位置参数是缓冲,而不是编码。

像这样拨打open

open('GMCAECON.txt', 'w', encoding='utf-8')

你的问题应该会消失。

【讨论】:

  • 谢谢,太好了
【解决方案2】:

当您执行file = open('GMCAECON.txt', 'w', 'utf-8') 时,您将位置参数传递给open()。您传递的第三个参数是encoding,但是它期望的第三个参数是buffering。您需要将 encoding 作为关键字参数传递,例如 file = open('GMCAECON.txt', 'w', encoding='utf-8')

请注意,最好使用with 上下文管理器

with open('GMCAECON.txt', 'w', encoding='utf-8') as f:
    f.write(text)

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多