2016-01-23 69 views
2
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' 
+1

你不应该包含的东西的人通过编辑您的问题回答/点了一下。这使答案员看起来很糟糕。我已经回复你的问题来包含'=='操作,并根据需要添加了你的AttributeError。 –

+0

@Jim谢谢,我是新来的,请记住。 – Navin

回答

2

您是一个字符串的元组比较。你可能已经打算使用in

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

而且,你应该通过文件名来splitext(),而不是文件对象。替换:

file_name, file_extension = os.path.splitext(load_list) 

有:

filename = askopenfilename() 
_, file_extension = os.path.splitext(filename) 
+2

OP已决定编辑出'=='并将其替换为'in'。如果你不想进入回滚 - 编辑循环,只需删除答案的第一部分,这样看起来并不像你指出的东西不存在。 –

+2

@Jim好点,谢谢。 – alecxe

+1

@Jim对不起这个问题的人,我没有意识到我改回了它。 – Navin