我正在做作业,我需要使用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()
答案 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())