我是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/

10-09 08:21
查看更多