Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 1

Must be str, not bytes в python

19.03.2017, 18:05. Показов 5427. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте я начинающий программист на питоне, и решил написать бот для твича, но столкнулся с ошибкой TypeError: must be str, not bytes
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import string
from Read import getUser, getMesage
from Socket import openSocket, sendMessage
from Initialize import joinRoom
 
s = openSocket()
joinRoom(s)
readbuffer = ""
while True:
    readbuffer = readbuffer + s.recv(1024).decode()
    temp = string.split(readbuffer, "\n")
    readbuffer = temp.pop()
    for line in temp:
        print(line)
        if "PING" in line:
            s.send(line.replace("PING", "PONG"))
            break
        user = getUser(line)
        message = getMesage(line)
        print (user + "typed :") + message
        if "You Suck " in message:
            sendMessage(s, "No, you suck!")
            break
и

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import socket
from Settings import HOST, PORT, PASS, IDENT, CHANNEL
 
def openSocket():
    s = socket.socket()
    s.connect((HOST, PORT))
    s.send("PASS " + PASS + "\r\n".encode())
    s.send("NICK" + IDENT + "\r\n".encode())
    s.send("CHANNEL" + CHANNEL + "\r\n".encode())
    return s
def sendMessage(s, message):
    messageTemp = "PRIVMSG" + CHANNEL + ":" + message
    s.send(messageTemp + "\r\n")
    print("Sent:" ) + messageTemp
ошибка TypeError: must be str, not bytes Помогите пожалуйста

Есть бот для твича на питоне
Python
1
2
3
4
5
6
7
# ----- Settings ----- #
HOST = "irc.twitch.tv"
PORT = 6667
CHAN = "Имя канала"
NICK = "Имя бота"
PASS = "Аутикей"
# -------------------- #
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import socket
# --------- IRC Functions --------- #
con = socket.socket()
def send_pong(msg):
    con.send(bytes('PONG %s\r\n' % msg, 'UTF-8'))
 
def send_message(chan, msg):
    con.send(bytes('PRIVMSG %s :%s\r\n' % (chan, msg), 'UTF-8'))
 
def send_nick(nick):
    con.send(bytes('NICK %s\r\n' % (nick), 'UTF-8'))
 
def send_pass(password):
    #con.send(bytes('PASS %s\r\n' % (password), 'UTF-8'))
    con.send("PASS {}\r\n".format(password).encode("utf-8"))
def join_channel(chan):
    con.send(bytes('JOIN %s\r\n' % (chan), 'UTF-8'))
 
def part_channel(chan):
    con.send(bytes('PART %s\r\n' % (chan), 'UTF-8'))
 
# -------- Helper functions -------- #
 
def get_sender(msg):
    result = ""
    for char in msg:
        if char == "!":
            break
        if char != ":":
            result += char
    return result
 
def get_message(msg):
    result = ""
    i = 3
    while i < len(msg):
        result += msg[i] + " "
        i += 1
    result = result.lstrip(':')
    return result
 
def parse_message(msg):
    if len(msg) >= 1:
        msg = msg.split(' ')
        options = {'!test': command_test,
                   '!asdf': command_asdf }
        
        # Case-switch operation to determine bot command entered
        if msg[0] in options:
            options[msg[0]]()
 
# --------- Bot Commands --------- #
 
def command_test():
    send_message(CHAN, 'testing stuff')
 
def command_asdf():
    send_message(CHAN, 'asdfasdfasdf')
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import re
import socket
 
from Functions import *
from ChannelSettings import *
 
con = socket.socket()
con.connect((HOST, PORT))
 
send_pass(PASS)
send_nick(NICK)
join_channel(CHAN)
 
data = ""
 
while True:
    try:
        data = data + con.recv(1024).decode('UTF-8')
        data_split = re.split(r"[~\r\n]+", data)
        data = data_split.pop()
 
        for line in data_split:
            line = str.rstrip(line)
            line = str.split(line)
 
            if len(line) >= 1:
                if line[0] == 'PING':
                    send_pong(line[1])
 
                if line[1] == 'PRIVMSG':
                    sender = get_sender(line[0])
                    message = get_message(line)
                    parse_message(message)
 
                    print(sender + ": " + message)
    
    except socket.error:
        print("Socket died")
 
    except socket.timeout:
        print("Socket timed out")
Ошибка
Python
1
2
3
4
5
6
7
8
9
10
11
def send_nick(nick):
    con.send(bytes('NICK %s\r\n' % (nick), 'UTF-8'))
 
def send_pass(password):
    #con.send(bytes('PASS %s\r\n' % (password), 'UTF-8'))
    con.send("PASS {}\r\n".format(password).encode("utf-8"))
def join_channel(chan):
    con.send(bytes('JOIN %s\r\n' % (chan), 'UTF-8'))
 
def part_channel(chan):
    con.send(bytes('PART %s\r\n' % (chan), 'UTF-8'))
Помогите пожалуйста скоро сдача)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.03.2017, 18:05
Ответы с готовыми решениями:

TypeError: must be str, not bytes
Добрый день! Ошибка в коде: Traceback (most recent call last): File &quot;C:/Cloud/Cripto/3.py&quot;, line 53, in &lt;module&gt; print...

TypeError: must be str, not bytes
Здравствуйте. Решил немного улучшить свой код, но мне выдает ошибку - гуглил, но всё безуспешно. Вот сама ошибка: И вот код(в...

Can't concat str to bytes
def post_app(environ, start_response): html = form if environ == 'POST': post_env = environ.copy() ...

1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
20.03.2017, 00:37
Ну Вы же понимаете, чем отличаются string и bytes? Вот в той строке, на которую ругается Питон, должна быть string.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2017, 00:37
Помогаю со студенческими работами здесь

a bytes-like object is required, not 'str'
del :)

join() argument must be str or bytes, not 'dict'
Есть модели: class Product(models.Model): title = models.CharField(max_length=200, unique=True, verbose_name='Название') ...

TypeError: a bytes-like object is required, not 'str'
Здравствуйте, подскажите как можно исправить:скрипт выдает такую ошибку. import socket from tkinter import * tk=Tk() ...

TypeError: expected str, bytes or os.PathLike object, not _io.BytesIO
Помогите ошибка Traceback (most recent call last): File &quot;python100new.py&quot;, line 43, in &lt;module&gt; File &quot;hooman\hooman.py&quot;,...

Как избавиться от ошибки TypeError: expected str, bytes or os.PathLike
Решил написать простенькое приложение в целях практики и изучения Python и Pyqt5 Что делает приложение: извлекает файл, добавляет туда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 25.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 25.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru