Python 如何从askopenfile结果中提取文件名?

Python 如何从askopenfile结果中提取文件名?,python,tkinter,Python,Tkinter,我在Python/Tkinter中遇到了第一个绊脚石。当我选择要打开的文件时,我会: filein = askopenfile(initialdir=initial_dir, filetypes=mask, mode='r') 没关系,但我的filein由以下字符串组成: open file '/home/steve/projects/python/test/myfile', mode 'r' at 0xb7494a70 是否有任何方法可以在不需要垃圾的情况下获取choosen文件名?这是一

我在Python/Tkinter中遇到了第一个绊脚石。当我选择要打开的文件时,我会:

filein = askopenfile(initialdir=initial_dir, filetypes=mask, mode='r')

没关系,但我的filein由以下字符串组成:

open file '/home/steve/projects/python/test/myfile', mode 'r' at 0xb7494a70

是否有任何方法可以在不需要垃圾的情况下获取choosen文件名?

这是一个
文件
对象。您可以使用
filein.name
获取文件名。或者,您可以将调用替换为
askopenfilename()
,只要获取文件名即可。

我敢打赌您的
filein
不是由字符串组成的,而是由一个file对象组成的,其repr是一个在尖括号内包含该子字符串的字符串。这不是“你不需要的垃圾”,它是文件对象表示的一部分,如果它不存在,你将无法执行诸如读取文件之类的操作……”我的filein由以下字符串组成:…“不。
filein
不是字符串,而是文件对象。如果要读取文件,只需执行
filein.read()
。如果您想写入它,只需执行
filein.write(…)
。如果您使用
askopenfilename
,它将是一个字符串。这就是问题所在!我的问题不准确,我不是必要的杰出术语,但幸运的是你理解我的意思。谢谢