2017-05-20 47 views
0

我使用Python 3.5.2/Anaconda 4.1.1从pdf中提取文本:(http://www.mitpressjournals.org/doi/pdf/10.1162/INOV_a_00153)使用pypdf2。 我收到很多这样的Unicode字符的打印的文字中间,我不要求:Python-从PDF中打印/提取文本中不需要的Unicode字符

\xc5 \xef \x82 \xef \xac \n. 

能否请你帮我摆脱这些讨厌的人物?谢谢你的帮助! 这是我的一小段代码如下:

import PyPDF2 


pdfFileObj = open('C:\\Users\\HP\\Desktop\\Datasets\\task1_rb.pdf','rb') 

pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 

num=pdfReader.numPages 

for a in range(1,num): 

    text='' 

    pageObj = pdfReader.getPage(a)   

    text=pageObj.extractText().encode('utf-8') 

    print(text) 
+0

你可能想拥有'\ N',因为这是一个换行符 – matejm

+0

'打印(text.decode( 'UTF-8'))'但也有字符一些错误(在我的机器上),例如'... fi verticals flŠfor...'而不是'...'verticals“ - for ...'在第一页上。 – JosefZ

+0

谢谢!这似乎工作。 – Ray92

回答

0

你可以在编码ASCII text,而忽略非ASCII字符。

尝试改变:

text=pageObj.extractText().encode('utf-8')

要:

text=pageObj.extractText().encode('ascii', 'ignore')

我脱脂输出,它似乎已经完成了帽子戏法。

在另一个点上,for循环中的range会导致您错过某些输出(除非这是预期的)。

变化for a in range(1,num):for a in range(0,num):

+0

谢谢!这似乎工作! – Ray92

+0

好东西。如果有帮助,请记住接受答案。 – DanielH