此问题在此处已有答案:
subprocess "TypeError: a bytes-like object is required, not 'str'"(2个答案)
12小时前关门了。
我正在将一个程序从Python 2更新到Python 3。
如果在命令的stdout中找到字符串,程序会检查很多,但是在Python 3中,我遇到了很多问题。
cmd = 'ps aux | grep iproxy'
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
if 'iproxy 2222 22' in stdout:
File "/Users/ben/Documents/ios/iosation/iosation3.py", line 469, in startConf
if 'iproxy 2222 22' in stdout:
TypeError: a bytes-like object is required, not 'str
将其更改为适当的字符串find方法基本上会产生相同的错误。
一个二个一个一个
在Python 2下工作了很多年,但Python 3不喜欢它,为什么呢?
1条答案
按热度按时间jogvjijk1#
你所面临的问题是由于Python 2和Python 3中字符串处理方式的不同。在Python 2中,默认字符串类型是ASCII,它与bytes类型兼容。然而,在Python 3中,默认字符串类型是Unicode,它与bytes类型不兼容。
我觉得这能行。