我是Python的新用户。filename = askopenfilenames()
这提示用户选择一个文件
我想对上面选择的文件使用file_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()
。filename = askopenfilename() #filename is a string!
with open(filename, "r") as f:
#do stuff with open file f
另外,还有方法
askopenfile()
和askopenfiles()
分别与askopenfilename()
和askopenfilenames()
做相同的事情,除了返回文件以供读取之外,它们不返回文件名,而是返回文件名。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()
关于python - 如何将askopenfilename()返回值作为参数传递给内置python函数open,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38922095/