Popen错误:需要类似字节的对象,而不是'str'

时间:2019-08-27 13:43:08

标签: python python-3.x file

我正在尝试将python2升级到python3.6,我得到了以下代码的错误:

cmd = gRealPathCmd + " " + monOpts['wd']
wd = Popen(cmd, stdout = PIPE, shell = True).communicate()[0]
wd = wd.rstrip('\n')
monOpts['wd'] = wd

我得到的错误:

    wd = wd.rstrip('\n')
TypeError: a bytes-like object is required, not 'str'

从以前的帖子中,我认为该文件的开头是二进制文件,这就是为什么我收到此错误,但是我不太确定如何解决它。 该怎么办?

2 个答案:

答案 0 :(得分:2)

b'\n''\n'是两个不同的值。 Python 3对于bytesstr之间的区别非常严格,并且wd.rstrip作为绑定的bytes方法,期望前者作为参数,而不是后者:{ {1}}。

答案 1 :(得分:0)

使用字节字面量:

$..data.attributes.units.[?(@.children[?(@.content[?(@.id == 'b96c127c-6a4f-4a29-924d-63f0ba55972')])])].id