Thanks,
Bill
	On what platform?  There's a Win95 serial communication module
at http://www.python.org/ftp/python/contrib/System/siomodule.README .
For Unix-like systems, you could probably use os.open() to open
/dev/whatever, and then use the ioctl module to set various
parameters.  I don't know if the Mac Python port has any serial port
interfaces; probably...
	This question seems to come up a fair amount; could someone
add an entry for serial port I/O to Aaron's PyModules FAQ?  (I'm
rather disappointed in the poor response to that FAQ.)  
	Andrew Kuchling
	a...@magnet.com
	http://starship.skyport.net/crew/amk/
On Tue, 23 Dec 1997, Andrew Kuchling wrote:
>  [...]  I don't know if the Mac Python port has any serial port
> interfaces; probably...
There is a high level interface thru the communications toolbox
in the standard distribution, and I have a low level interface to
the device manager. ( Written for another hardware device, but 
I used a serial loopback to test the basics. )
---|  Steven D. Majewski   (804-982-0831)  <sd...@Virginia.EDU>  |---
---|  Department of Molecular Physiology and Biological Physics  |---
---|  University of Virginia             Health Sciences Center  |---
---|  P.O. Box 10011            Charlottesville, VA  22906-0011  |---
All power corrupts and obsolete power corrupts obsoletely." - Ted Nelson
Yep, you can do all kinds of serial-port manipulations on Unix.  The
code frag which follows is in use on Solaris 2.5, using Python (1.4
and 1.5b2) configured with the termios module.  And I just tried it
out w. 1.5b2 on Red Hat 5.0, where it passed the "Well, it didn't
throw any exceptions" test.  (Sorry, I don't have a DB9-DB25 cable
handy, so can't hook it up to my usual data source.)
>         This question seems to come up a fair amount; could someone
> add an entry for serial port I/O to Aaron's PyModules FAQ?  (I'm
> rather disappointed in the poor response to that FAQ.)
I'll try to add an entry.
-snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--snip-
import sys, os, fcntl, FCNTL, termios, TERMIOS
...
    ##################################################################
    # Establish a serial-port connection w. required settings.
    ##################################################################
    def openSerial(self, portName="/dev/term/a"):
        # The open attempt may fail on account of permissions or on
        # account of somebody's already using the port.
        # Pass such exceptions on to our client.
        try:
            # You probably just want to use the builtin open(), here...
            fd = os.open(portName, FCNTL.O_RDWR, 0)
            # Set up symbolic constants for the list elements returned by
            # tcgetattr.
            [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] = range(7)
            # Set the port baud rate, etc.
            settings = termios.tcgetattr(fd)
            # Set the baud rate.
            settings[ospeed] = TERMIOS.B9600 # Output speed
            settings[ispeed] = TERMIOS.B0    # Input speed (B0 => match output)
            # Go for 8N1 with hardware handshaking.
            settings[cflag] = (((settings[cflag] & ~TERMIOS.CSIZE) |
                                TERMIOS.CS8) & ~TERMIOS.PARENB)
            # NOTE:  This code relies on an UNDOCUMENTED
            # feature of Solaris 2.4. Answerbook explicitly states
            # that CRTSCTS will not work.  After much searching you
            # will discover that termiox ioctl() calls are to
            # be used for this purpose.  After reviewing Sunsolve
            # databases, you will find that termiox's TCGETX/TCSETX
            # are not implemented.  *snarl*
            settings[cflag] = settings[cflag] | TERMIOS.CRTSCTS
            # Don't echo received chars, or do erase or kill input processing.
            settings[lflag] = (settings[lflag] &
                               ~(TERMIOS.ECHO | TERMIOS.ICANON))
            # Do NO output processing.
            settings[oflag] = 0
            # When reading, always return immediately, regardless of
            # how many characters are available.
            settings[cc][TERMIOS.VMIN] = 0
            settings[cc][TERMIOS.VTIME] = 0
            
            # Install the modified line settings.
            termios.tcsetattr(fd, TERMIOS.TCSANOW, settings)
            # Set it up for non-blocking I/O.
            fcntl.fcntl(fd, FCNTL.F_SETFL, FCNTL.O_NONBLOCK)
        except os.error, info:
            # If any of this fails, mention the port name in the
            # exception.
            raise os.error, "Can't open %s: %s" % (portName, info))
-snip--snip--snip--snip--snip--snip--snip--snip--snip--snip--snip-
-- 
Mitch Chapman			  |	4105 Executive Drive
Ohio Electronic Engravers, Inc.	  |	Beavercreek, OH  45430
mcha...@OhioEE.com		  |	import StandardDisclaimer
-- 
--
Jack Jansen             | ++++ stop the execution of Mumia Abu-Jamal ++++
Jack....@cwi.nl      | ++++ if you agree copy these lines to your sig ++++
http://www.cwi.nl/~jack | see http://www.xs4all.nl/~tank/spg-l/sigaction.htm 
I'm working on a - don't laugh - DOS serial port module.
Another person is working on a unix module and we are collaborating
to ensure a common interface.  What platform are you intersted in?