【发布时间】: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'” 然后我看看其他人是否有这个问题,大多数地方都在谈论人们以二进制模式或其他方式打开文件,但据我所知,这里不是这种情况。 如果有人有任何建议,我愿意尝试任何事情。另外,如果需要其他代码,请告诉我。
【问题讨论】:
-
你在哪里定义
check_output? -
Check_output 是从子流程导入的,这是文档:docs.python.org/3/library/subprocess.html
-
做到了!谢谢!我使用了 decode 但没有使用这些规范!
标签: python string byte python-3.8