Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #107680

Re: How to read from serial port?

From Peter Otten <__peter__@web.de>
Newsgroups comp.lang.python
Subject Re: How to read from serial port?
Date 2016-04-26 19:58 +0200
Organization None
Message-ID <mailman.122.1461693520.32212.python-list@python.org> (permalink)
References <41302A7145AC054FA7A96CFD03835A0A0BAC66F9@EX10MBX02.EU.NEC.COM> <nfoa7v$mbc$1@ger.gmane.org>

Show all headers | View raw


David Aldrich wrote:

> Hi
> 
> I have written a very simple program to read and print data from the
> serial port using pyserial:
> 
> #!/usr/bin/python3
> import serial
> 
> ser=serial.Serial('COM1',115200)
> while True:
>     out = ser.read()
>     print('Receiving...'+out)
> 
> When I run it and send data for it to read I get:
> 
> C:\SVNProj\Raggio\trunk\hostconsole\gui\prototypes\serial_test>py
> serial_read.py Traceback (most recent call last):
>   File "serial_read.py", line 9, in <module>
>     print('Receiving...'+out)
> TypeError: Can't convert 'bytes' object to str implicitly
> 
> I am using Python 3.5.  How would I fix this error please?

Look at the traceback again. The line

>     out = ser.read()

is executed, you are reading successfully. What fails is

>     print('Receiving...'+out)

You are trying to concatenate a (unicode) string and bytes, like in

>>> print("foo" + b"bar")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'bytes' object to str implicitly

You can avoid that by printing the string and the bytes independently

>>> print("foo", b"bar")
foo b'bar'

If you don't like the b"..." stuff and want to treat the bytes as text 
rather than data you can decode them:

>>> print("foo", b"bar".decode())
foo bar

For more see <https://docs.python.org/3/howto/unicode.html>.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: How to read from serial port? Peter Otten <__peter__@web.de> - 2016-04-26 19:58 +0200

csiph-web