python-3.x - 类型错误 : a bytes-like object is required, 而不是 '_io.BufferedReader'

标签 python-3.x

我运行这个脚本

# -*- coding: utf-8 -*-
import socket

def snd():
    a = ent.get()
    sock.send(a.encode())
    print("Отправка текста")
def sndfle():
    b = ent2.get()
    file = open(b, "rb")
    sock.send(file)
    print("Отправка файла")


sock = socket.socket()
sock.connect(('localhost', 25565))
print ("Соединение с сервером установлено")

我看到这个错误

    sock.send(file)
TypeError: a bytes-like object is required, not '_io.BufferedReader'

请帮帮我 我用按钮运行 def(s)。我把它隐藏起来。

最佳答案

参见this question .

您需要从文件中获取字节才能通过套接字发送它。试试这个:

def sndfle():
    b = ent2.get()
    with open(b, "rb") as file:
        for data in file:
            sock.sendall(data)
    print("Отправка файла")

关于python-3.x - 类型错误 : a bytes-like object is required, 而不是 '_io.BufferedReader',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634315/

相关文章:

python-3.x - Keras 期望同时出现二维数组和 (1,) 形状

python-3.x - 测试一个函数是否被调用

python - 股票代码列表属性错误

python - 如何快速获取一个巨大的 csv 文件的最后一行(48M 行)?

python - 分割不可散列类型的字符串

python-3.x - 确定 DataFrame 每一行的值

python - 如何将Python程序从gtk2移植到gtk3?

python - 如何提取由点分隔的数字,后跟一组特定的单词正则表达式 python?

python - sqlalchemy.exc.InvalidRequestError : One or more mappers failed to initialize如何解决

python - 根据 Pandas 数据框中的另一列获取两列的频率计数