On 11/29/18 12:20 PM, srinivasan wrote: > Dear Python Experts, > > With the below code snippet, I am seeing the below error, I am using > python 3.6, could you please what could be the issue?
> self.child = pexpect.spawn("bluetoothctl", echo = False) ... > self.child.send(command + "\n") > time.sleep(pause) > start_failed = self.child.expect(["bluetooth", pexpect.EOF]) ... > return self.child.before.split("\r\n") > -------------------------------------------------------------------------------> > the issue seems to be here > line 27, in get_output > return self.child.before.split("\r\n") > TypeError: a bytes-like object is required, not 'str' your types don't match. it's Python 3 so what you get back from talking to an external process is a bytes object. you're calling the split method on that object, but passing it a string to split on - that's what the error is saying. It shouldn't be any more complicated to fix that than to give it a byte object: return self.child.before.split(b"\r\n") or... decode the object to a str before splitting on a string. but since you're specifically splitting on lines, you may as well use the splitlines method instead of the split method, since that's what it is designed for. -- https://mail.python.org/mailman/listinfo/python-list