第一次在这里编码,我目前正在使用python编程,将4个PDF合并到2个文件夹中。所有pdf文件都有相同的文件名,但有前缀。第一个pdf始终以“1”为前缀,第二个pdf始终以“2”为前缀,第三个pdf始终以“3”为前缀,第四个pdf始终位于以“08”为前缀的不同文件夹中。例如[1_001.pdf、2_001.pdf、3_001.pdf、08_001.pdf)。有时,第四个文件不存在
这就是我目前得到的
from tkinter import *
from PyPDF2 import PdfFileMerger
import os
root = Tk()
# Creating a Label Widget
MainLabel = Label(root, text="PDF Rawat Jalan")
# Shoving it onto the screen
MainLabel.pack()
#Prompt Kode
KodeLabel = Label(root, text="Masukan Kode")
KodeLabel.pack()
#Input Kode
kode = Entry(root, bg="gray",)
kode.pack()
#define merger
merger = PdfFileMerger()
#function of Merge Button
def mergerclick(event=""):
kode1 = kode.get()
path_8 = "C:\\Users\\User\\Desktop\\PDF\\Folder B\\"
if os.path.exists(path_8):
pdflocation_1 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\1_" + kode1 + ".pdf"
pdflocation_2 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\2_" + kode1 + ".pdf"
pdflocation_3 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\3_" + kode1 + ".pdf"
Output = "C:\\Users\\User\\Desktop\\PDF\\output\\" + kode1 + ".pdf"
entries = os.listdir("C:\\Users\\User\\Desktop\\PDF\\Folder B\\")
filtered_entries = [file for file in entries if file.startswith("08_"+kode1)]
file8 = str(filtered_entries[0])
pdflocation_8 = "C:\\Users\\User\\Desktop\\PDF\\Folder B\\" +file8
merger.append(pdflocation_1)
merger.append(pdflocation_2)
merger.append(pdflocation_3)
merger.append(pdflocation_8)
merger.write(open(Output, 'wb'))
konfirmasi = kode1 + " merged"
testlabel = Label(root, text=konfirmasi)
testlabel.pack()
else:
pdflocation_1 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\1_" + kode1 + ".pdf"
pdflocation_2 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\2_" + kode1 + ".pdf"
pdflocation_3 = "C:\\Users\\User\\Desktop\\PDF\\Folder A\\3_" + kode1 + ".pdf"
Output = "C:\\Users\\User\\Desktop\\PDF\\output\\" + kode1 + ".pdf"
merger.append(pdflocation_1)
merger.append(pdflocation_2)
merger.append(pdflocation_3)
merger.write(open(Output, 'wb'))
konfirmasi = "file 8 not found but "+kode1 + " merged"
testlabel = Label(root, text=konfirmasi)
testlabel.pack()
#merger button = enter
root.bind("<Return>", mergerclick)
#Merge Button
mergerButton = Button(root, text= "Merge", command=mergerclick)
mergerButton.pack()
root.mainloop()
我知道代码非常混乱,但它可以工作。但这只是第一次,当我输入第二个文件名时,它返回以下错误
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
return self.func(*args)
File "C:\Users\User\PycharmProjects\pythonProject\GUI.py", line 60, in mergerclick
merger.append(pdflocation_1)
File "C:\Users\User\PycharmProjects\pythonProject\venv\lib\site-packages\PyPDF2\merger.py", line 203, in append
self.merge(len(self.pages), fileobj, bookmark, pages, import_bookmarks)
File "C:\Users\User\PycharmProjects\pythonProject\venv\lib\site-packages\PyPDF2\merger.py", line 175, in merge
self._associate_bookmarks_to_pages(srcpages)
File "C:\Users\User\PycharmProjects\pythonProject\venv\lib\site-packages\PyPDF2\merger.py", line 448, in _associate_bookmarks_to_pages
bp = b['/Page']
File "C:\Users\User\PycharmProjects\pythonProject\venv\lib\site-packages\PyPDF2\generic.py", line 516, in __getitem__
return dict.__getitem__(self, key).getObject()
KeyError: '/Page'
我认为这是tkinter的问题,但我不能理解错误
显然我应该把
按钮的内部功能
相关问题 更多 >
编程相关推荐