当向字符串追加base64encoded字节时,我得到错误“TypeError:must be str,not bytes”

2024-06-26 02:22:27 发布

您现在位置:Python中文网/ 问答频道 /正文

data_to_send = data + encoded_string行中遇到错误 我用插座通讯。在

第一个函数browse打开资源管理器选择要发送的文件,第二个函数multimedia_send()是将文件发送到另一端的主函数。我试图以字节的形式读取文件,并将其格式化为字符串并通过套接字传递。但是我面临着这样的错误:

TypeError: must be str, not bytes

def browse(self):
    self.mmfilename = filedialog.askopenfilename()
    self.multimedia_send()

def multimedia_send(self):

    filename = self.mmfilename
    file = open(filename, 'rb')
    encoded_string = base64.b64encode(file.read())

    data = "^"
    for client in self.list_of_active_user:
        if self.enable[client].get() == 1:
            data = data + "@" + client + ' '
    data = data + ':'
    data = data + filename + ':'
    data_to_send = data + encoded_string

    self.chat_entry.delete(0, Tkinter.END)#input box empty after send
    self.conn.send(data_to_send.encode()) 

错误:

^{pr2}$

Tags: 文件to函数selfclientsenddatastring