96889


pythonのPyPDF2についてです。以下のコードで`ValueError: seek of closed
file`のエラーが出ます。その原因を教えて頂きたいです。  
mac OS  
python 3.8.18  
PyPDF2 3.0.1  
を使用しています。

[code]

    def main():
      import sys
      import os
      import PyPDF2
    
      # PDFの読み込み
      pdf_path = 'sample/sample.pdf'
      with open(pdf_path, 'rb') as rf:
        reader = PyPDF2.PdfReader(rf, strict=False)
        page = reader.pages[1]
    
      # PDFの書き込み
      writer = PyPDF2.PdfWriter()
      writer.add_page(page)
      output_path = 'hoge.pdf'
      with open(output_path, 'wb') as wf:
          writer.write(wf)
    
    if(__name__ == '__main__'):
      main()
    
[/code]


CC BY-SA 4.0
2023-11-22T08:27:20.517
96887
2023-11-22T08:54:02.743
2023-11-22T08:54:02.743
9820
60464
question
python
PyPDF2でseek of closed fileのエラーを解消したい


`writer.add_page`する前に`rf`を閉じているのが原因です。  
閉じる前に書き込んでください。

[code]

    def main():
      import sys
      import os
      import PyPDF2
    
      # PDFの読み込み
      pdf_path = 'sample/sample.pdf'
      with open(pdf_path, 'rb') as rf:
        reader = PyPDF2.PdfReader(rf, strict=False)
        page = reader.pages[1]
        # PDFの書き込み
        writer = PyPDF2.PdfWriter()
        writer.add_page(page)  # rfを閉じる前に書き込むこと
        output_path = 'hoge.pdf'
        with open(output_path, 'wb') as wf:
            writer.write(wf)
    
    if(__name__ == '__main__'):
      main()
    
[/code]


CC BY-SA 4.0
2023-11-22T08:53:29.213
96889
2023-11-22T08:53:29.213
9820
96887
answer