2つのPDFをマージする簡単なスクリプトを作成しようとしていますが、出力をディスクに保存しようとすると問題が発生しました。バイナリモードではありませんへの書き込みをファイル:私のコードは、問題は、私はpypdf2でpdfを書くとエラーが発生する
UserWarningのエラーが出るということです
from PyPDF2 import PdfFileWriter, PdfFileReader
import tkinter as tk
from tkinter import filedialog
### Prompt the user for the 2 files to use via GUI ###
root = tk.Tk()
root.update()
file_path1 = tk.filedialog.askopenfilename(
filetypes=[("PDF files", "*.pdf")],
)
file_path2 = tk.filedialog.askopenfilename(
filetypes=[("PDF files", "*.pdf")],
)
###Function to combine PDFs###
output = PdfFileWriter()
def append_pdf_2_output(file_handler):
for page in range(file_handler.numPages):
output.addPage(file_handler.getPage(page))
#Actually combine the 2 PDFs###
append_pdf_2_output(PdfFileReader(open(file_path1, "rb")))
append_pdf_2_output(PdfFileReader(open(file_path2, "rb")))
###Prompt the user for the file save###
output_name = tk.filedialog.asksaveasfile(
defaultextension='pdf')
###Write the output to disk###
output.write(output_name)
output.close
です。正しく書き込まれないことがあります。 [pdf.py:453]トレースバック(最近の最後のコール):output.write(output_name)ファイルの "Combine2Pdfs.py"、行44、 "/Library/Frameworks/Python.framework/Versions/3.5/lib/pytho TypeError:write()の引数はstrでなければなりません( "\ n"); // n3.5/site-packages/P yPDF2/pdf.py "、行487、write stream.write(self。header + b 、バイトではありません。
どこが間違っていますか?
メッセージだけでなく、スタックトレースを投稿できますか? –
コメントにスタックトレースを投稿しないでください。あなたの質問には、質問を編集できる「編集」リンクがあります。 –