程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将 Python2 更改为 Python3 错误:TypeError:需要类似字节的对象,而不是“str”[重复]

发布于2022-10-06 22:14     阅读(978)     评论(0)     点赞(12)     收藏(3)


我是 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'”然后我看看其他人是否有这个问题,大多数地方都在谈论人们以二进制模式打开文件或诸如此类,但据我所知,这里不是这种情况。如果有人有任何建议,我愿意尝试任何事情。另外,如果需要其他代码,请告诉我。


解决方案


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

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

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



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1793555/d5d642de4f4457c85532/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

12 0
收藏该文
已收藏

评论内容:(最多支持255个字符)