直接Copy網(wǎng)上流傳最廣的代碼完成提取PDF轉(zhuǎn)文本,十有八九報錯!
流傳的是舊版本用法,造成的問題是命令規(guī)則用法變化。
常見的報錯:
1、讀取PDF文檔命令的變化:
去除PdfFileReader
不可用,
改為PyPDF2.PdfReader(read_pdf)
**報錯信息:
PyPDF2.errors.DeprecationError:?
PdfFileReader?is?deprecated?and?
was?removed?in?PyPDF2?3.0.0.?
Use?PdfReader?instead.
2、獲取PDF文檔頁數(shù)的命令變化:
去除reader.getPage(page_number)
不可用,
改為reader.pages[page_number]
PyPDF2.errors.DeprecationError:?
reader.getPage(pageNumber)?is?
deprecated?and?was?removed?in?
PyPDF2?3.0.0.?
Use?reader.pages[page_number]?instead.
3、編碼格式錯誤提示
location.writelines(extract_text)
UnicodeEncodeError:?
'cp950'?codec?can't?encode?character
'\u2212'?in?position?0:?
illegal?multibyte?sequence
求助Claude GPT給出的修改建議
錯誤表示在寫入提取的文本時,遇到了無法使用指定的編碼'cp950'來編碼文本中的某個字符。
具體是遇到了一個破折號字符'\u2212',它在Unicode中的編碼無法用cp950來表示,所以拋出了UnicodeEncodeError。
可能的解決方案:
-
嘗試使用其他編碼格式來寫入文件,比如'utf-8':
#1?方案
location.writelines(extract_text.encode('utf-8'))
-
將無法編碼的字符替換為可編碼的字符:
#2?方案
extract_text?=?extract_text.replace('\u2212',?'-')
location.writelines(extract_text)
-
忽略無法編碼的字符:
#3?方案
location.writelines(extract_text.encode('cp950',?errors='ignore'))
-
將文本轉(zhuǎn)化為另一種兼容格式再寫入:
#4?方案
extract_text?=?extract_text.encode('cp950',?errors='ignore').decode('cp950')?
location.writelines(extract_text)
主要原因是'cp950'編碼范圍有限,無法表示文本中的所有Unicode字符。
可以嘗試更高版本的Unicode編碼如utf-8,或者處理掉無法編碼的字符。
結(jié)論:經(jīng)過測試方案#3 有效,一次運(yùn)行成功通過!
完整的PDF 2 TXT 的代碼:
import?PyPDF2
read_pdf?=?open("D://0?All_in_one//Alevel?教程//Game?Theory?An?Introduction.pdf",?'rb')
pdfload?=?PyPDF2.PdfReader(read_pdf)
num_pages?=?len(pdfload.pages)#read_pdf.numPages
print(num_pages)
#?初始化文本字符串變量
text?=?""
#?遍歷每一頁
for?pageNum?in?range(num_pages):
????pageObj?=?pdfload.pages[pageNum-1]
????text?+=?pageObj.extract_text()
#?保存文本結(jié)果
location?=?open("D://0?All_in_one//Alevel?教程//Game?Theory?An?Introduction.txt",?"a")
outfile?=?"D://0?All_in_one//Alevel?教程//Game?Theory?An?Introduction.txt"
with?open(outfile,?'w')?as?f:
????f.writelines(text.encode('cp950',?errors='ignore').decode('cp950'))
更多相關(guān)鏈接:文章來源:http://www.zghlxwxcb.cn/news/detail-562829.html
本文由 mdnice 多平臺發(fā)布文章來源地址http://www.zghlxwxcb.cn/news/detail-562829.html
到了這里,關(guān)于求助Claude GPT | PyPDF2 親測可用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!