如何将askopenfilename()返回值作为参数传递给内置python函数open
我是Python的新用户如何将askopenfilename()返回值作为参数传递给内置python函数open,python,user-interface,tkinter,Python,User Interface,Tkinter,我是Python的新用户 filename=askopenfilenames()这会提示用户选择一个文件 我想对上面选择的文件使用file\u selection=open(filename,“r”) 我遇到的问题是,当您使用askopenfilenames() (我认为)字符串被()包围,因此open命令不起作用。有人能帮我吗 编辑: 当我尝试替换时:filename.replace(“,”,“”) 我收到错误消息:AttributeError:“tuple”对象没有属性“replace”as
filename=askopenfilenames()
这会提示用户选择一个文件
我想对上面选择的文件使用file\u selection=open(filename,“r”)
我遇到的问题是,当您使用askopenfilenames()
(我认为)字符串被()
包围,因此open命令不起作用。有人能帮我吗
编辑:
当我尝试替换时:filename.replace(“,”,“”)
我收到错误消息:AttributeError:“tuple”对象没有属性“replace”askopenfilenames()
允许用户选择多个文件;因此,它返回所有选定文件名的元组
如果要允许用户选择多个文件,只需迭代返回的元组:
filenames = askopenfilenames() #filenames is a tuple of strings!
for filename in filenames:
with open(filename, "r") as f:
#Do stuff with open file f.
如果要允许用户只选择一个文件,请查看askopenfilename()
另外,还有一些方法askopenfile()
和askopenfiles()
分别执行与askopenfilename()
和askopenfilename()
相同的操作,除了返回文件名之外,它们不返回文件名,而是返回打开阅读的文件
f = askopenfile() #f is an open file.
#do stuff with f
f.close()
及
可能的副本似乎他们没有真正弄明白什么。你能确认一下哪个操作系统和Python的哪个版本吗?Windows 7和Python 3.5Joe,非常感谢你提供的信息。我正在制作一个GUI,希望用户选择一个甚至多个文件。然后,我希望程序读取文件并显示文件内容(例如公司名称),并在使用askopenfilename()命令选择单个文件时将所有文件中的所有名称放置到GUI上,并将其保存为字符串,在open命令中输入字符串变量之前,是否需要删除任何内容?在这种情况下,我将使用第一个或最后一个选项。注意,如果使用最后一个选项,要从打开的文件
f
获取全名,请使用f.name
。要读取打开的文件,请使用f.read()
(返回字符串)。也许你可以用一本字典;键是文件名,值是相应的文件内容。这只是一种方法。你说的移除任何东西是什么意思askopenfilename()
应以字符串形式返回该文件的完整路径,并可直接用于open
命令。在选项4(最后一个选项)中,每次通过for循环都将针对不同的文件…正确吗?
f = askopenfile() #f is an open file.
#do stuff with f
f.close()
open_files = askopenfiles() #open_files is a tuple of open files.
for f in open_files:
#do stuff with f
f.close()