卡在ValueError中,如何解决?

时间:2019-05-27 11:13:22

标签: python error-handling

我正在做作业,我需要使用PyPDF2从PDF提取文本,而在尝试这样做时会遇到此错误。如何解决这个问题? 有人能帮我吗?预先谢谢你。

import PyPDF2
textFile = open('foo.txt', 'w')
file = open('foo.pdf','rb')
readpdf = PyPDF2.PdfFileReader(file)
print(readpdf.getNumPages())
1
read_pdf = readpdf.getPage(0) 
textFile.write(read_pdf.extractText())

--------------------------------------------------------------------------
ValueError                                Traceback (most recent call 
last)
<ipython-input-42-5a892ea3012b> in <module>
----> 1 textFile.write(read_pdf.extractText())

ValueError: I/O operation on closed file.

file.close
textFile.close()

2 个答案:

答案 0 :(得分:0)

我不确定您如何导致此错误,但这可能会有所帮助:

textFile = open('foo.txt', 'w')
read_pdf = readpdf.getPage(0) 
textFile.write(read_pdf.extractText())

在开始处理文件之前打开文件似乎对我有用,因此请尝试一下,我们将看到;]

答案 1 :(得分:0)

使用with open,您不需要处理异常并关闭文件,它可以自行处理

import PyPDF2
with open('foo.txt','w') textFile:
    with open('foo.pdf','rb') as file:
        readpdf = PyPDF2.PdfFileReader(file)
        print(readpdf.getNumPages())
        read_pdf = readpdf.getPage(0) 
        textFile.write(read_pdf.extractText())