我是Python的新用户。
filename = askopenfilenames()
这会提示用户选择文件
我想将file_selection = open(filename, "r")
与上面选择的文件一起使用。
我遇到的问题是当你使用askopenfilenames()
时
(我认为)字符串被()
包围,因此open命令不起作用。有人可以帮帮我吗?
编辑: 当我尝试替换:filename.replace(",","") 我收到错误消息:AttributeError:' tuple'对象没有属性'替换'
答案 0 :(得分:2)
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()