簡體   English   中英

AttributeError: 'function' object 沒有屬性 'read' — 我該如何修復?

[英]AttributeError: 'function' object has no attribute 'read' — HOW CAN I FIX?

我的代碼:

import simpleaudio as sa
import tkinter
from tkinter import *
from tkinter import filedialog
import wave

raiz = Tk()
raiz.geometry("200x300")

#function that plays song -is not playing eith a function in parameters, only with the path
def add_song():
    song = filedialog.askopenfilename(initialdir='Downloads/', title="Escolha uma musica", filetypes=(("wav files", "*.wav"), ))

my_menu = Menu(raiz)
raiz.config(menu=my_menu)

addmusica_menu = Menu(my_menu)
my_menu.add_cascade(label="Adicionar", menu=addmusica_menu)
addmusica_menu.add_command(label="Uma Música", command=add_song)

def play():
    wave_read = wave.open(add_song, 'rb')
    wave_obj = sa.WaveObject.from_wave_read(wave_read)
    wave_obj = sa.WaveObject.from_wave_file(add_song)
    play_obj = wave_obj.play()

def stop():
    play_obj.stop()

Rightframe = Frame(raiz)
Rightframe.pack(pady=1)

middleframe = Frame(Rightframe)
middleframe.pack(pady=5, padx=5)

play_img = PhotoImage(file='botoes/play.png')
playBt = Button(middleframe, image=play_img, borderwidth=0, command=play)
playBt.grid(row=10, column=2, padx=5)

parar_img = PhotoImage(file='botoes/parar.png')
pararBt = Button(middleframe, image=parar_img, borderwidth=0, command=stop)
pararBt.grid(row=10, column=0, padx=5)

raiz.mainloop()

錯誤信息:

Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "playquefunciona.py", line 22, in play
    wave_read = wave.open(add_song, 'rb')
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\wave.py", line 510, in open
    return Wave_read(f)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\wave.py", line 164, in __init__
    self.initfp(f)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\wave.py", line 129, in initfp
    self._file = Chunk(file, bigendian = 0)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\chunk.py", line 61, in __init__
    self.chunkname = file.read(4)
AttributeError: 'function' object has no attribute 'read'
 wave_read = wave.open(add_song, 'rb')

在這一行中,您沒有調用 function add_song,並且在 function 中,您沒有返回任何內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM