码迷,mamicode.com
首页 > 编程语言 > 详细

Python3检验pdf文件是否有效

时间:2015-08-11 19:08:40      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:pdffilereader   bytes   tempfile   

【基本原理】

  利用PyPDF2的PdfFileReader模块打开pdf文件,如果不抛异常,就认为此pdf文件有效。

【情形一】

  pdf文件在磁盘上。    

import traceback
from PyPDF2 import PdfFileReader    

#参数为pdf文件全路径名
def isValidPDF_pathfile(pathfile):
    bValid = True
    try:
        #PdfFileReader(open(pathfile, ‘rb‘))
        PdfFileReader(pathfile)
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid

【情形二】

  pdf是来自网络的bytes数据。由于PdfFileReader的参数为文件名或文件对象,所以需要做一下转换。

方法一:

import traceback, tempfile
from PyPDF2 import PdfFileReader    

#参数为bytes类型数据。利用临时文件。
def isValidPDF_bytes(pdfBytes):
    bValid = True
    try:
        fp = tempfile.TemporaryFile()
        fp.write(pdfBytes)
        PdfFileReader(fp)
        fp.close()
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid

方法二:

import io, traceback
from PyPDF2 import PdfFileReader    

#参数为bytes类型数据。利用BytesIO转换。
def isValidPDF_bytes(pdfBytes):
    bValid = True
    try:
        b = io.BytesIO(pdfBytes)
        PdfFileReader(b)
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid


参考文档:

1、The PdfFileReader Class

2、tempfile — Generate temporary files and directories

3、io — Core tools for working with streams


*** walker ***


本文出自 “walker的流水账” 博客,请务必保留此出处http://walkerqt.blog.51cto.com/1310630/1683680

Python3检验pdf文件是否有效

标签:pdffilereader   bytes   tempfile   

原文地址:http://walkerqt.blog.51cto.com/1310630/1683680

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!