Tkinter在uuuu getitem_uuuuuu返回指令中出错。uuuu getitem_uuuuuuuu(self,key).getObject()

2024-10-01 22:37:31 发布

您现在位置:Python中文网/ 问答频道 /正文

第一次在这里编码,我目前正在使用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的问题,但我不能理解错误


Tags: inpypdfrootfoldermergeruserspack

热门问题