gpt4 book ai didi

python - tkinter - 在 askopenfile 期间检索文件名

转载 作者:太空宇宙 更新时间:2023-11-04 05:45:36 24 4
gpt4 key购买 nike

我有一个用 Python 和 tkinter 制作的文本编辑器。

这是我的“打开文件”方法:

def onOpen(self):
file = askopenfile(filetypes=[("Text files", "*.txt")])
txt = file.read()
self.text.delete("1.0", END)
root.title(file)
self.text.insert(1.0, txt)
file.close()

我想将窗口标题设置为文件名。目前,我正在使用任何 askopenfile 返回的文件名,但是这返回例如:

<_io.TextIOWrapper name='/Users/user/Desktop/file.txt' mode='r' encoding='UTF-8'>

当然,这不是很好。我想要任何 askopenfilename 会返回。但是,如果我调用 askopenfile 和 askopenfilename,用户必须使用“打开文件”对话框两次。

没有第二个对话框有什么方法可以检索文件名吗?

如果没有,是否有人使用正则表达式来过滤掉文件名。如果您熟悉 RegEx,最好的文件名当然是“file.txt”而不是“/Users/user/Desktop/file.txt”。不过,无论哪种方式都很好。

最佳答案

您正在传递文件对象,因此您会看到对文件对象的引用作为标题,您可以使用 name = root.title(file.name) 从文件对象中获取名称。

如果您只需要基本名称,请使用 os.path.basename :

import os
name = os.path.basename(file.name)

关于python - tkinter - 在 askopenfile 期间检索文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com