如何修改模块和包,同时保持原始的完整性?

2024-05-29 03:42:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用python编写的程序,它使用PyPDF2包来刮取一批pdf文件。这些PDF的形状不是最好的,所以为了让我的程序运行,我需要按照本网站的建议修改包库中的PDF.py文件:

https://cheonhyangzhang.wordpress.com/2015/03/31/python-pdffilereader-pdfreaderror-eof-marker-not-found/

有没有一种方法可以在保持原始文件完整的同时实现对文件的更改?我尝试过创建PdfileReader类的子类,并按照上面链接的规定修改“read”方法,但是,我发现这会导致一些我希望避免的导入依赖性问题

有没有更简单的方法


Tags: 文件方法pyhttps程序程序运行pdf网站
2条回答

我建议将pdf.py文件复制到我们的脚本目录中,并将其重命名为mypdf.py。然后,您可以随意修改副本,而不影响原件。可以使用导入包

import mypdf

我为shutil.py做了类似的事情,因为Windows中的默认缓冲区太小,无法传输大文件

您可以使用setattr()添加(或重新定义)类的方法,如下所示(其中类是内联定义的,而不是仅为说明而导入的):

class Class(object):
    pass

def func(self, some_other_argument):
    return some_other_argument

setattr(Class, 'func', func)

if __name__ == '__main__':
    c = Class()
    print(c.func(42))  # -> 42

相关问题 更多 >

    热门问题