Python-将pdf转换为文本,编码错误
我试图将pdf文档转换为txt文件。 (pdf文件示例) 所以我试着如下。 但是提取的文本很奇怪,就像Python-将pdf转换为文本,编码错误,python,pdf,text,encoding,error-handling,Python,Pdf,Text,Encoding,Error Handling,我试图将pdf文档转换为txt文件。 (pdf文件示例) 所以我试着如下。 但是提取的文本很奇怪,就像??챘#?遏?H첨챦_철?‾n~w???k 我怎样才能修好它 #!/usr/bin/python # -*- coding: cp949 -*- # -*- coding: utf-8 -*- # -*- coding: latin-1 -*- # -*- coding: euc-kr -*- import codecs import pyPdf filename = "d:/data/pro
??챘#?遏?H첨챦_철?‾n~w???k
我怎样才能修好它
#!/usr/bin/python
# -*- coding: cp949 -*-
# -*- coding: utf-8 -*-
# -*- coding: latin-1 -*-
# -*- coding: euc-kr -*-
import codecs
import pyPdf
filename = "d:/data/processed_data/paper/iscram/2006/iscram1.pdf"
#pdf = codecs.open(filename, "rb", encoding = 'utf-8')
pdf = codecs.open(filename, "rb", encoding = 'latin1')
for page in pdf:
print page.encode('utf-8')
我使用的是win7-64位韩语版本
我尝试了另一种方法,使用pyPdf,如下所示
import os
import glob
from pyPdf import PdfFileReader
import pdfminer
f=open("d:/data/processed_data/paper/iscram/2006/iscram1.txt",'w')
parent = "d:/data/processed_data/paper/iscram/2006"
os.chdir(parent)
filename = os.path.abspath('iscram1.pdf')
input = PdfFileReader(file(filename, "rb"))
for page in input.pages:
f.write(page.extractText())
但它不起作用,出现“ascii”编解码器无法对602位置的字符u'\u0152'进行编码:序号不在范围(128)”错误前一个代码根本无法工作,PDF不一定包含直接可读的文本。但后一种使用pyPdf的代码看起来更有希望 之所以引发,是因为(
页面
)不是字符串,而是f.write
希望看到字符串
因此,您可以尝试使用文档中的extractText
方法:
for page in input.pages:
f.write(page.extractText().encode('UTF-8'))
以前的代码根本无法工作,PDF根本不一定包含直接可读的文本。但后一种使用pyPdf的代码看起来更有希望 之所以引发,是因为(
页面
)不是字符串,而是f.write
希望看到字符串
因此,您可以尝试使用文档中的extractText
方法:
for page in input.pages:
f.write(page.extractText().encode('UTF-8'))
以前的代码根本无法工作,PDF根本不一定包含直接可读的文本。但后一种使用pyPdf的代码看起来更有希望 之所以引发,是因为(
页面
)不是字符串,而是f.write
希望看到字符串
因此,您可以尝试使用文档中的extractText
方法:
for page in input.pages:
f.write(page.extractText().encode('UTF-8'))
以前的代码根本无法工作,PDF根本不一定包含直接可读的文本。但后一种使用pyPdf的代码看起来更有希望 之所以引发,是因为(
页面
)不是字符串,而是f.write
希望看到字符串
因此,您可以尝试使用文档中的extractText
方法:
for page in input.pages:
f.write(page.extractText().encode('UTF-8'))