pyOBD-II (a.k.a. "pyobd2") is a Python library for communicating with OBD-II vehicles. Its goal is to make writing programs for vehicle diagnostics and monitoring vehicle data as easy as possible. Relies on pySerial to communicate with ELM scanners.
Garmon (Gnome/GTK+ Car Monitor) is a tool that lets you connect to an OBD-II compliant vehicle using an ELM327 based scanning device. It supports monitoring live and freeze frame data as well as reading and clearing DTCs. It is written in python.