我正在嘗試從PDF中提取文本,以便可以對其進行分析,但是當我嘗試從頁面中提取文本時,出現以下錯誤。Traceback (most recent call last):File "C:\Program Files (x86)\eclipse\plugins\org.python.pydev_2.7.4.2013051601\pysrc\pydevd_comm.py", line 765, in doIt result = pydevd_vars.evaluateExpression(self.thread_id, self.frame_id, self.expression, self.doExec)File "C:\Program Files (x86)\eclipse\plugins\org.python.pydev_2.7.4.2013051601\pysrc\pydevd_vars.py", line 376, in evaluateExpression result = eval(compiled, updated_globals, frame.f_locals)File "<string>", line 1, in <module>File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\pdf.py", line 1701, in extractText content = ContentStream(content, self.pdf)File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\pdf.py", line 1783, in __init__ stream = StringIO(stream.getData())File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\generic.py", line 801, in getData decoded._data = filters.decodeStreamData(self)File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\filters.py", line 228, in decodeStreamData data = ASCII85Decode.decode(data)File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\filters.py", line 170, in decode data = [y for y in data if not (y in ' \n\r\t')]File "C:\Python33\lib\site-packages\pypdf2-1.9.0-py3.3.egg\PyPDF2\filters.py", line 170, in <listcomp> data = [y for y in data if not (y in ' \n\r\t')]TypeError: 'in <string>' requires string as left operand, not int相關代碼節如下:from PyPDF2 import PdfFileReaderfor PDF_Entry in self.PDF_List: Pdf_File = PdfFileReader(open(PDF_Entry, "rb")) for pg_idx in range(0, Pdf_File.getNumPages()): page_Content = Pdf_File.getPage(pg_idx).extractText() for line in page_Content.split("\n"): self.Analyse_Line(line)將錯誤拋出在extractText()行。
2 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
您正在一行中做兩件事。嘗試打破所做的事情以進一步解決問題。改變:
page_Content = Pdf_File.getPage(pg_idx).extractText()
進入
page = Pdf_File.getPage(pg_idx)
page_Content = page.extractText()
查看錯誤發生的位置。還要從命令行而不是從Eclipse運行該程序,只是為了確保它是相同的錯誤。您說它發生在,extractText()但是該行沒有顯示在回溯中。
添加回答
舉報
0/150
提交
取消