Popen错误:需要byteslike对象,而不是“str”

2024-09-30 22:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将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'

从以前的帖子中,我认为文件的打开是二进制的,这就是为什么我会出现这个错误,但我不太确定如何修复它。 怎么办?你知道吗


Tags: 代码cmdtrue消息错误stdoutshellpopen
2条回答

b'\n''\n'是两个不同的值。python3对bytesstr之间的区别非常严格,而wd.rstrip作为绑定的bytes方法,期望前者作为参数,而不是后者:wd = wd.rstrip(b'\n')。你知道吗

使用字节文字:

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

相关问题 更多 >