Ошибка pyPdf неверный аргумент

На самом деле я использую pyPdf для открытия, чтения и записи содержимого файла PDF.

для этого я использую эти строки кода:

from pyPdf import PdfFileWriter, PdfFileReader

pdf = PdfFileReader(file("/myPdfFile.pdf", "w+b"))
content = pdf.getPage(1).extractText()
print content

Но он возвращает мне эту ошибку, и я точно не понимаю, почему

File "/usr/local/lib/python2.6/dist-packages/pyPdf/pdf.py", line 374, in __init__
    self.read(stream)
File "/usr/local/lib/python2.6/dist-packages/pyPdf/pdf.py", line 702, in read
    stream.seek(-1, 2)
IOError: [Errno 22] Invalid argument

Кто-нибудь может мне помочь?


person kschaeffler    schedule 22.05.2012    source источник
comment
Столкнувшись с той же проблемой на недавно установленном Amazon Server-Ubuntu   -  person Tejas Tank    schedule 16.10.2015


Ответы (1)


Как сказано в документации Python, режим 'w+b' открывает и усекает файл до 0 байт, а 'r+b' открывает файл без усечения.

person MRAB    schedule 22.05.2012
comment
Повторите попытку после восстановления PDF-файла из резервной копии — теперь его длина составляет 0 байт. - person Nick Craig-Wood; 22.05.2012
comment
Нет, на самом деле я получаю ту же ошибку IOError: [Errno 22] Invalid argument - person kschaeffler; 22.05.2012
comment
Когда я пытаюсь открыть свой PDF-файл с помощью функции open('mypdf.pdf', 'rb'), я получаю пустой файл. тоже не понимаю зачем - person kschaeffler; 23.05.2012