你如何概括 tkinter 中的文件路径?

How do you generalize a filepath in tkinter?

我完成了我的第一个 GUI 项目,它允许用户通过输入产品密钥打开任何 PDF 文件,或使用树视图手动查找它。我将所有文件都放在与应用程序相同的文件夹中,问题是当我使用 pyinstaller 将其设为 .exe 时,它​​不会启动。每当我移动它时,都不会弹出任何东西,因为代码已链接到该特定位置。我的问题是如何将它写入文件路径链接到特定文件夹的位置,即使所述文件夹移动,它仍然可以访问这些文件?

def Product_Look_UP():
    if inPro.get()== "24LPPS":
        Label(root, text= f"Searching for {inPro.get()}..." , fg = "Orange").grid(row = 3 , column = 0)
        import webbrowser as wb
        wb.open_new(r'C:\Users\user\Desktop\Product Finder\Data\Vender\vender\Ladder Pulls in\Polished Stainless\LADDER PULL.pdf')

基本上如何使 "C:\Users\user\Desktop" 位于 "Product Finder" 文件夹所在的位置,无论是在我的计算机、服务器还是其他人的计算机上?

您可以调用函数 os.path.abspath 并将主 python 脚本的文件名传递给它,它将 return 文件所在的路径。你可以这样做:

import os
import webbrowser as wb

CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
wb.open_new(f"{CURRENT_DIR}/data/test.pdf")