Ошибка типа: требуется объект, подобный байтам, а не «_io.TextIOWrapper»

#python #python-3.9

#python #python-3.9

Вопрос:

Я пытаюсь отправить файл по сети, и этот фрагмент кода доставляет мне некоторые проблемы:

 def Network_Vinfo():
    Uinfo = [] # list call
    host = "localhost"
    port = 8080
    Nvi = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    Nvi.connect((host, port))
    
    print("Connected to Server, Initializing voting procedures.")#Sever is connected
    
    with open("ballot1.txt", "w ") as ballot:# creating the file
        A =str(input("Enter your name"))#Info asking for users info to count "Vote"
        b = str(input("Enter your Address"))
        c =str(input("Enter your Driver License No."))
        print('Candidates: John Ossoff, Raphael Warnock, David Perdue, Kelly loeffler')
        d =str(input("Enter your Preferred Candidate"))
        Uinfo = [A,b,c,d]
        #write items in list on Newline
        for U in Uinfo:
            ballot.write('%sn' % U)
        data = ballot
        while (data):
           Nvi.sendall(ballot)
           data = ballot.read(1024)
           print("finished sending")
 

Проблема начинается, когда программа пытается отправить файл в цикле while (data). Пожалуйста, помогите, я в отчаянии!

Комментарии:

1. Вы должны отправить данные, считанные из файла, а не из объекта file.

2. Не могли бы вы привести мне пример, пожалуйста? Я очень смущен.

Ответ №1:

Вы должны отправить данные, считанные из файла, а не из объекта file.

Последняя часть вашего кода должна быть такой:

 ballot.seek(0)
data = ballot.read(1024)
while (data):
    Nvi.sendall(data)
    data = ballot.read(1024)
print("finished sending")