Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3型str不';不支持字符串比较上的缓冲区API_Python_String_Python 3.x - Fatal编程技术网

Python3型str不';不支持字符串比较上的缓冲区API

Python3型str不';不支持字符串比较上的缓冲区API,python,string,python-3.x,Python,String,Python 3.x,我刚从Python2.7迁移到Python3.4,在一个简单的字符串比较中出现了一个类型错误,我不理解错误消息,我的代码在Python2中运行良好。我做错了什么 错误消息:TypeError:Type str不支持缓冲区API 错误在第6行 def wait_提示符(设备、消息、定时、错误消息、端口): output=device.readline() t_end=time.time()+定时 计数器=0 虽然输出中没有msg: 如果time.time()

我刚从Python2.7迁移到Python3.4,在一个简单的字符串比较中出现了一个类型错误,我不理解错误消息,我的代码在Python2中运行良好。我做错了什么

错误消息:TypeError:Type str不支持缓冲区API

错误在第6行

def wait_提示符(设备、消息、定时、错误消息、端口):
output=device.readline()
t_end=time.time()+定时
计数器=0
虽然输出中没有msg:
如果time.time()
我没有所有的上下文,但是我假设
输出的类型是
字节
,而
msg
str
?如果您将输出中的
msg
(第6行)更改为输出中的
msg.encode('utf-8')(或您使用的任何其他编码),那么它应该可以工作


每当您在
字节
中搜索
str
时,就会发生此错误,使用特定字符编码对字符串进行编码会将其转换为字节序列,并使两者更易于比较

我没有所有的上下文,但是我假设
输出
的类型是
字节
消息
str
?如果您将输出中的
msg
(第6行)更改为输出中的
msg.encode('utf-8')(或您使用的任何其他编码),那么它应该可以工作


每当您在
字节
中搜索
str
时,就会发生此错误,使用特定字符编码对字符串进行编码会将其转换为字节序列,并使两者更易于比较

我没有所有的上下文,但是我假设
输出
的类型是
字节
消息
str
?如果您将输出中的
msg
(第6行)更改为输出中的
msg.encode('utf-8')(或您使用的任何其他编码),那么它应该可以工作


每当您在
字节
中搜索
str
时,就会发生此错误,使用特定字符编码对字符串进行编码会将其转换为字节序列,并使两者更易于比较

我没有所有的上下文,但是我假设
输出
的类型是
字节
消息
str
?如果您将输出中的
msg
(第6行)更改为输出中的
msg.encode('utf-8')(或您使用的任何其他编码),那么它应该可以工作


每当您在
字节
中搜索
str
时,就会发生此错误,使用特定字符编码对字符串进行编码会将其转换为字节序列,并使两者更易于比较

请添加错误消息。可能会有帮助:第6行是什么?您应该添加完整的回溯请添加错误消息。可能会有帮助:第6行是什么?您应该添加完整的回溯请添加错误消息。可能会有帮助:第6行是什么?您应该添加完整的回溯请添加错误消息。可能会有帮助:第6行是什么?您应该添加完整的回溯。我将output=device.readline()修改为output=str(device.read())以字符串形式对其进行了修改,它可以正常工作,谢谢;)那确实更好。早期解码,后期编码我将output=device.readline()修改为output=str(device.read()),以字符串形式对其进行编码,因此它可以正常工作;)那确实更好。早期解码,后期编码我将output=device.readline()修改为output=str(device.read()),以字符串形式对其进行编码,因此它可以正常工作;)那确实更好。早期解码,后期编码我将output=device.readline()修改为output=str(device.read()),以字符串形式对其进行编码,因此它可以正常工作;)那确实更好。早解码,晚编码
def wait_prompt(device, msg, timing, error_msg, port):

    output = device.readline()
    t_end = time.time() + timing
    counter = 0
    while not msg in output:
        if time.time() < t_end:
            time.sleep(0.1)
            device.write("\r")
            output = device.readline()
            device.flush()
            loading_msg("msg",counter)
            counter = counter + 1
        else:
            error(error_msg, port)
            return 0
    return 1

def initialize_router(device):

    if wait_prompt(device, "[yes/no]:", 10, "waiting for question [yes/no]", port[0]) == 0:
        return 0