尝试从Python3中的“ ifconfig”命令提取IP地址时,出现以下错误:
ip = ip_string.strip()。split(“”)[1:]中的文件“ testingCode.py”,第28行,类型错误:需要一个类似字节的对象,而不是'str'
我不确定是什么错误,因为代码可以在Python2中使用,但是当我切换到Python3时,会出现此错误。我试图将.strip()命令切换为.decode(),程序运行,但未找到任何输出,因为找不到ifconfig的IP地址。任何解决方案将不胜感激。
您的问题是这样的事实,当您在进程中执行某些操作时,通信通常以字节为单位。因此,类型ip_string
是字节,而不是字符串。尝试ip = ip_string.decode("utf-8").strip().split(" ")[1]
。它从字节创建一个字符串,并将其与substring拆分" "
。如果您出于某些原因而拥有wnatip
字节数,则可以使用ip = ip_string.decode("utf-8").strip().split(" ")[1].encode("utf-8")
。这将返回您的字节,但我不建议这样做,因为__getitem__
字节和字符串的工作原理不同。例如"Hello"[0]
,不是H
,其字节数为H
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句