Я использую в своей программе функцию AudioSegment.from_file: sound = AudioSegment.from_file(audio_path, format="m4a")
Я также реализую созданный мной файл: import GUI_log
В этом файле у меня есть следующий класс:
class TextHandler(logging.Handler):
"""This class allows you to log to a Tkinter scroll_text or Scrolledscroll_text widget"""
def __init__(self, scroll_text):
# run the regular Handler __init__
logging.Handler.__init__(self)
# Store a reference to the scroll_text it will log to
self.scroll_text = scroll_text
def emit(self, record):
msg = self.format(record)
tag = ""
if record.levelno == ACTION:
tag = "ACTION"
def append():
self.scroll_text.configure(state='normal')
self.scroll_text.insert(Tkinter.END, msg + '\n', tag)
self.scroll_text.configure(state='disabled')
# Autoscroll to the bottom
self.scroll_text.yview(Tkinter.END)
# This is necessary because we can't modify the scroll_text from other threads
self.scroll_text.after(0, append)
По какой-то причине, когда я выполняю первую упомянутую мной строку (ту, что с from_file
), выполняется функция emit
в классе TextHandler
.
Кто-нибудь знает, в чем причина и как это исправить?
РЕДАКТИРОВАТЬ: я обнаружил, что я перезаписать где-то в этом коде:
# Create Tkinter object and ScrolledText
root =Tkinter.Tk()
st = ScrolledText.ScrolledText(root, state='disabled')
st.configure(font='TkFixedFont')
st.pack()
st.tag_config("ACTION", foreground="dark green")
# Create text handler
text_handler = TextHandler(st)
formatter = logging.Formatter('%(asctime)s IP: %(IP)-15s PORT: %(PORT)-5s MESSAGE: %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') #.%(msecs)03d
text_handler.setFormatter(formatter)
# Add action level
logging.addLevelName(ACTION, "ACTION")
def action(self, message, *args, **kws):
self._log(ACTION, message, args, **kws)
logging.Logger.action = action
# Create logger
logger = logging.getLogger()
logger.addHandler(text_handler)
logger.setLevel(logging.DEBUG)
return (root, logger)