【问题标题】:Changing Python2 to Python3 Error: TypeError: a bytes-like object is required, not 'str' [duplicate]将 Python2 更改为 Python3 错误:TypeError:需要类似字节的对象,而不是“str”[重复]
【发布时间】:2021-11-03 06:48:38
【问题描述】:

我是 python 新手,但我的任务是将我不熟悉的文件从 python2 转换为 python3。特别是一个问题一直困扰着我。 我开始了:

graphical_users = [line.split() for line in check_output("who".split('\n') if " :0" in line]

然后我把它改成了

graphical_users = []
        for line in check_output("who").split('\n'):
                if " :0" in line:
                    graphical_users.append(line.split()) 

为了方便调试,找到了行

for line in check_output("who").split('\n'):

成为罪魁祸首。

无论哪种方式,因为它们是等效的,所以它给了我错误: “TypeError:需要一个类似字节的对象,而不是'str'” 然后我看看其他人是否有这个问题,大多数地方都在谈论人们以二进制模式或其他方式打开文件,但据我所知,这里不是这种情况。 如果有人有任何建议,我愿意尝试任何事情。另外,如果需要其他代码,请告诉我。

【问题讨论】:

标签: python string byte python-3.8


【解决方案1】:

归功于enzo!他发现信息表明它需要在 check_out("who") 和 .split('\n') 之间使用解码方法来解决:

for line in check_output("who").decode('utf-8').split('\n'):

有关此错误的更多信息,请参见here

【讨论】:

    猜你喜欢
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    相关资源
    最近更新 更多