当前位置:网站首页>Error reporting solution - io UnsupportedOperation: can‘t do nonzero end-relative seeks

Error reporting solution - io UnsupportedOperation: can‘t do nonzero end-relative seeks

2022-07-06 11:07:00 zkkkkkkkkkkkkk

Catalog

One 、 Error code

Two 、 Error message

Two 、 Solution

Four 、seek Function introduction


One 、 Error code

with open(pdfpath,"r") as fp:

 

Two 、 Error message

PdfReadWarning: PdfFileReader stream/file object is not in binary mode. It may not be read correctly. [pdf.py:1143]
Traceback (most recent call last):
  File "D:/Gitlab/my_world/recognize_img/pdf_to_img.py", line 36, in <module>
    jiemi('D:\\Gitlab\\my_world\\recognize_img\\demo_img\\ The frameless table cannot be edited .pdf')
  File "D:/Gitlab/my_world/recognize_img/pdf_to_img.py", line 9, in jiemi
    pdfFile = PyPDF4.pdf.PdfFileReader(fp)
  File "C:\Users\dell\Anaconda3\lib\site-packages\PyPDF4\pdf.py", line 1148, in __init__
    self.read(stream)
  File "C:\Users\dell\Anaconda3\lib\site-packages\PyPDF4\pdf.py", line 1754, in read
    stream.seek(-1, 2)
io.UnsupportedOperation: can't do nonzero end-relative seeks

Process finished with exit code 1

 

Two 、 Solution

        When reporting a mistake seek() An exception thrown by a function . resolvent : If you use open() Function to open a file ( For example, I use open() Function to open pdf), You have to use r+b How to read .

def read_pdf(file_path):
    with open(pdfpath,"rb") as fp:
        pdfFile = PyPDF4.pdf.PdfFileReader(fp)

        print(pdf.pages)
    
    fp.close()

if __name__ == '__main__':
    file_path = 'D:\\Gitlab\\my_world\\recognize_img\\demo_img\\ The frameless table cannot be edited .pdf'
    read_pdf(file_path)

Four 、seek Function introduction

         This error is caused by seek() An exception thrown by a function .seek() Functions are common in reading files , It has the function of pointer . Usually in the process of reading documents , The pointer will then move to record the current read position .seek() Function can also move the pointer to the specified position .

        seek Use of functions

                fp.seek(0, 0)     # first 0 Represents the offset , the second 0 Represents where to start the offset (0: From the beginning of the file ,1: From the current position ,2: From the end of the file .)

#  Open file 
with open("runoob.txt", "rw+") as fp:
    line = fp.readline()
    print(" Reading data :",line)
 
    #  Reset the file read pointer to the beginning 
    fp.seek(0, 0)     #  first 0 Represents the offset , the second 0 Represents where to start the offset (0: From the beginning of the file ,1: From the current position ,2: From the end of the file .)

    line = fp.readline()
    print(" Read data after reset :",line)

#  Close file 
fp.close()

原网站

版权声明
本文为[zkkkkkkkkkkkkk]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060912331864.html