Python 检查非字符串的文件扩展名

Python 检查非字符串的文件扩展名,python,file,python-3.x,module,file-extension,Python,File,Python 3.x,Module,File Extension,我已经读到,这个方法可以处理以字符串形式给出的文件路径,但是这不适用于我获取文件路径的方法 我收到一个错误: from tkinter.filedialog import askopenfilename import os load_list = open(askopenfilename(), "rb") file_name, file_extension = os.path.splitext(load_list) if str(file_extension).lower() == (".p"

我已经读到,这个方法可以处理以字符串形式给出的文件路径,但是这不适用于我获取文件路径的方法

我收到一个错误:

from tkinter.filedialog import askopenfilename
import os

load_list = open(askopenfilename(), "rb")
file_name, file_extension = os.path.splitext(load_list)
if str(file_extension).lower() == (".p", ".pickle"):
    print("pickle")
您正在比较字符串和元组。您可能打算在中使用

AttributeError: '_io.BufferedReader' object has no attribute 'rfind'
并且,应该将文件名传递给
splitext()
,而不是文件对象。替换:

if file_extension.lower() in (".p", ".pickle"):
与:


你不应该通过编辑在你的问题中加入人们回答/指出的内容。这让回答者看起来很糟糕。我已将您的问题还原为包含
=
操作,并根据需要添加了您的AttributeError。@Jim谢谢,我是新来的,请记住。OP已决定编辑
=
并在
中用
替换它。如果你不想进入回滚编辑循环,只需删除答案的第一部分,这样看起来你就不会指出不存在的东西了。@Jim很抱歉,伙计们,我没意识到我把它改回去了。
file_name, file_extension = os.path.splitext(load_list)
filename = askopenfilename()
_, file_extension = os.path.splitext(filename)