Python PDF页面以字节为单位存储为什么

Python PDF页面以字节为单位存储为什么,python,pdf,Python,Pdf,我正试图写一些工作脚本,但我在研究一个特定的问题时遇到了困难。我假设每个PDF页面都是一个图像,比如jpg,但即使我正在阅读该文件,情况也并非如此。因此,我的问题是:如果不是图像,那么存储的PDF页面是什么 以下是我正在使用的代码: pdf = user_file.file.read() startmark = b"\xff\xd8" startfix = 0 endmark = b"\xff\xd9" endfix = 2 i = 0

我正试图写一些工作脚本,但我在研究一个特定的问题时遇到了困难。我假设每个PDF页面都是一个图像,比如jpg,但即使我正在阅读该文件,情况也并非如此。因此,我的问题是:如果不是图像,那么存储的PDF页面是什么

以下是我正在使用的代码:

    pdf = user_file.file.read()
    startmark = b"\xff\xd8"
    startfix = 0
    endmark = b"\xff\xd9"
    endfix = 2
    i = 0

    njpg = 0
    while True:
        istream = pdf.find("stream", i)
        if istream < 0:
            break
        istart = pdf.find(startmark, istream, istream+20)
        if istart < 0:
            i = istream+20
            continue
        iend = pdf.find("endstream", istart)
        if iend < 0:
            raise Exception("Didn't find end of stream!")
        iend = pdf.find(endmark, iend-20)
        if iend < 0:
            raise Exception("Didn't find end of JPG!")

        istart += startfix
        iend += endfix
        print "JPG %d from %d to %d" % (njpg, istart, iend)
pdf=user\u file.file.read()
startmark=b“\xff\xd8”
startfix=0
endmark=b“\xff\xd9”
endfix=2
i=0
njpg=0
尽管如此:
istream=pdf.find(“流”,i)
如果istream<0:
打破
istart=pdf.find(开始标记、istream、istream+20)
如果istart<0:
i=i流+20
持续
iend=pdf.find(“endstream”,istart)
如果iend<0:
引发异常(“未找到流的结尾!”)
iend=pdf.find(endmark,iend-20)
如果iend<0:
引发异常(“未找到JPG结尾!”)
istart+=startfix
iend+=endfix
打印“JPG%d从%d到%d”%(njpg、istart、iend)

我认为PDF应该存储为字节。
我在解析PDF时使用了一个名为的库。

PDF并不是那么简单。请看参考资料。大约只有700页。若你们真的想做一些真实的事情,那个就使用图书馆。你们可以在这里找到例子。我相信每个文件都是以字节的形式存储的。是的。。。没错,但我的意思更像是“UTF-8”,或者用“b”打开文件,因此要读取它,必须打开一个字节流。文件只是一个字节序列,可能是空的。当然,你可以把PDF读成字节。