【问题标题】:Check file extension of a non string检查非字符串的文件扩展名
【发布时间】:2016-04-30 10:08:43
【问题描述】:
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'

【问题讨论】:

  • 您不应该通过编辑在您的问题中加入人们回答/指出的内容。这让回答者看起来很糟糕。我已将您的问题还原为包含 == 操作,并根据需要添加了您的 AttributeError。
  • @Jim 谢谢,我是新来的,请记住。

标签: python file python-3.x module file-extension


【解决方案1】:

您正在将字符串与元组进行比较。你可能打算使用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)

【讨论】:

  • OP 已决定删除 == 并将其替换为 in。如果您不想进入回滚编辑循环,只需删除答案的第一部分,这样看起来您就不会指出不存在的东西。
  • @Jim 对不起,问题家伙,我没有意识到我把它改回来了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
相关资源
最近更新 更多