这是我第一次使用Tkinter.我已经导入了它,它一直工作到现在.文件类型似乎有问题?如果这有什么区别的话,我也在Mac电脑上.

这是我的代码:

def importTracks(self):
    self.fname = askopenfilename(filetypes=(("Mp3 Files", "*.mp3")))

这是我收到的错误,

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/accudeveloper/PycharmProjects/AccuAdmin2.0/AccuAdmin2.0.py
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/tkinter/__init__.py", line 1533, in __call__
    return self.func(*args)
  File "/Users/accudeveloper/PycharmProjects/AccuAdmin2.0/AccuAdmin2.0.py", line 68, in importTracks
    self.fname = askopenfilename(filetypes=(("Mp3 Files", "*.mp3")))
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/tkinter/filedialog.py", line 375, in askopenfilename
    return Open(**options).show()
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/tkinter/commondialog.py", line 48, in show
    s = w.tk.call(self.command, *w._options(self.options))
_tkinter.TclError: bad file type "*.mp3", should be "typeName {extension ?extensions ...?} ?{macType ?macTypes ...?}?

推荐答案

filetypes=(("Mp3 Files", "*.mp3"))等于filetypes=("Mp3 Files", "*.mp3").我猜你想让外圆括号对成为一个元组,但这需要一个尾随逗号.或者你可以只使用一个列表.

self.fname = askopenfilename(filetypes=(("Mp3 Files", "*.mp3"),))

self.fname = askopenfilename(filetypes=[("Mp3 Files", "*.mp3")])

Python-3.x相关问答推荐

DuckDB:带有嵌套对象的星形表达式

按小时和日期对Pandas 数据帧进行分组

无法使用Python发送带有参数和标头的POST请求

CSV-DAT 转换时将引号添加到数据中

基于Pandas列动态创建分箱,以使观测值数量或计数占总计数的1%.

将自动文本转换为 DataFrame

pytorch 中 mps 设备的 manual_seed

如何在 Telethon 中向机器人发送发送表情符号

根据另一个数据帧中的位置从主数据帧中提取子序列

Python ** 用于负数

Python pandas将单元格值移动到同一行中的另一个单元格

Django 2 个字段之一不能为空

日志(log)模块不适用于 Python3

如何确定一个类的元类?

在数据类中创建类变量的正确方法

try 注释散列变量时,ABCMeta对象不可下标

迭代器也是可迭代的吗?

为什么 string.maketrans 在 Python 3.1 中不起作用?

我可以替换 Python 中对象的现有方法吗?

TypeError:无法将系列转换为