pyOBD

pyOBD (aka pyOBD-II or pyOBD2) is an OBD-II compliant car diagnostic tool.
It is designed to interface with low-cost
ELM 32x OBD-II diagnostic interfaces such as ELM-USB. It will basically allow you to talk to your car's ECU,... display fault codes, display measured values, read status tests, etc. All cars made since 1996 (in the US) or 2001 (in the EU) must be OBD-II compliant, i.e. they should work with pyOBD.

pyOBD is written entirely in Python and
was originally written by Donour Sizemore, now maintained and improved by SECONS Ltd. and it is Free Software and is distributed under the terms of the GPL.