
El lenguaje de programación Python logra reconciliar evidentes contradicciones: es tan elegante como pragmático, es simple pero potente, es de muy alto nivel, aunque no resulta molesto cuando hay que modificar bits y bytes. Se adapta a programadores principiantes y a expertos.
Éste es un libro de referencia para los programadores de Python para cuando necesiten recordar y descifrar la sintaxis de este lenguaje de código abierto y sus muchos y potentes módulos escasamente documentados. No sólo alcanza al lenguaje Python, sino también a la búsqueda de las partes más utilizadas de la biblioteca estándar y de las extensiones creadas por otras compañías abarcando múltiples áreas de aplicación, incluyendo programación de redes y de páginas Web, interfaces gráficas de usuarios GUI, gestión de XML, interacción en bases de datos e informática numérica de alta velocidad.
El libro se centra en las capacidades multiplataforma de Python y trata lo esencial sobre la extensión y la incorporación de Python en otras aplicaciones, utilizando tanto C como Java. El estilo de escritura es claro y directo y está acompañado de ejemplos muy ilustrativos.



Contenido
Parte I. Primeros pasos con Python
Capítulo 1. Introducción a Python
El lenguaje Python
La biblioteca estándar Python y los módulos de extensión
Las implementaciones Python
CPython
Jython
IronPython
Escoger entre CPython, Jython y IronPython
PyPy y otras versiones experimentales
Temas relacionados con licencias y precios
Desarrollos y versiones Python
Recursos Python
Documentación
Grupo de noticias y lista de correos
Grupos con intereses específicos
El foro de negocios Python
El periódico Python
Módulos de extensión y fuentes Python
El recetario Python
Libros y revistas
Capítulo 2. Instalación
Instalar Python desde código fuente
Windows
Descomprimir y extraer el código fuente Python
Crear el código fuente Python con Microsoft Visual Studio 2003
Crear Python para depurar errores
Instalar después de crear
Crear Python para Cygwin
Plataformas similares a Unix
Descomprimir y extraer el código fuente Python
Configurar, crear y evaluar
Instalar después de crear
Instalar Python desde paquetes binarios
Apple Macintosh
Instalar Jython
Instalar IronPython
Capítulo 3. El intérprete Python
El programa Python
Variables de entorno
Sintaxis y opciones de la línea de comandos
Sesiones interactivas
Entornos de desarrollo Python
IDLE
Otras multiplataformas IDE gratuitas de Python
IDEs gratuitos de Python específicos de plataforma
Ides de Python para uso comercial
Editores de texto gratuitos compatibles con Python
Herramientas para comprobar programas Python
Ejecutar programas Python
El intérprete Jython
El intérprete IronPython
Parte II. El lenguaje del núcleo Python y los componentes integrados
Capítulo 4
El lenguaje Python
Estructura léxica
Líneas y sangrado
Conjunto de caracteres
Tokens
Identificadores
Palabras clave
Operadores
Separadores
Literales
Sentencias
Sentencias simples
Sentencias compuestas
Tipos de datos
Números
Números enteros
Números en punto flotante
Números complejos
Secuencias
Iterables
Cadenas
Tuplas
Listas
Conjuntos
Diccionarios
None
Invocables
Valores booleanos
Variables y otras referencias
Variables
Elementos y atributos de objetos
Acceder a referencias no existentes
Sentencias para las asignaciones
Asignación simple
Asignación aumentada
La sentencia del
Expresiones y operadores
Encadenar comparaciones
Cortocircuitar operadores
El operador triple de Python 2.5
Operaciones numéricas
Conversiones numéricas
Operaciones aritméticas
División
Elevar a la potencia
Comparaciones
Operaciones en números enteros bit a bit
Operaciones en secuencia
Secuencias habituales
Conversiones en serie
Concatenación y repetición
Evaluar la pertenencia
Indexar una secuencia
Dividir una secuencia
Cadenas
Tuplas
Listas
Modificar una lista
Operaciones in situ en una lista
Métodos de lista
Clasificar una lista
Operaciones de conjunto
Pertenencia al conjunto
Métodos de conjunto
Operaciones de diccionario
Pertenencia al diccionario
Indexar un diccionario
Métodos de diccionario
La sentencia print
Sentencias de flujo de control
La sentencia if
La sentencia while
La sentencia for
Iteradores
range y xrange
Compresión de lista
La sentencia break
La sentencia continue
Las cláusulas else en las sentencias loop
La sentencia pass
Las sentencias try y raise
La sentencia with
Funciones
La sentencia def
Parámetros
Atributos de los objetos de función
Cadenas de documentación (docstring)
Otros atributos de los objetos de función
La sentencia return
Llamada a funciones
La semántica en la transmisión de argumentos
Clases de argumentos
Espacios nominales
La variable global
Funciones y ámbitos anidados
Expresiones lambda
Generadores
Expresiones de generador
Generadores en Python 2.5
Recursión
Capítulo 5. Python orientado a objetos
Clases e instancias
Clases Python
La sentencia class
El cuerpo de la clase
Atributos de objetos de clase
Definiciones de función en un cuerpo de clase
Variables exclusivas de clase
Cadenas de documentación de clase
Descriptores
Descriptores invalidantes y no invalidantes
Instancias
_ _init_ _
Atributos de los objetos de instancia
La expresión función de fábrica (creadora)
_ _new_ _
Conceptos básicos de la referencia de atributos
Conseguir un atributo de una clase
Conseguir un atributo de una instancia
Asignar un atributo
Métodos vinculados y no vinculados
Detalles de métodos no vinculados
Detalles de métodos vinculados
Herencia
Orden de resolución de método
Atributos invalidantes
Delegar en métodos de superclase
Llamada a método de superclase cooperativa
'Borrar' atributos de clase
El tipo integrado object
Métodos de nivel clase
Métodos estáticos
Métodos de clase
Propiedades
Por qué son importantes las propiedades
Propiedades y herencias
_ _slots_ _
_ _getattribute_ _
Métodos por-instancia
Herencia de tipos integrados
Métodos especiales
Métodos especiales de uso general
Secuencias
Correspondencias
Conjuntos
División de contenedor
Métodos de contenedor
Métodos especiales para objetos numéricos
Decoradores
Metaclases
Cómo determina Python una metaclase de clase
Cómo una metaclase crea una clase
Definir y utilizar nuestras propias metaclases
Un ejemplo esencial de metaclase personalizada
Capítulo 6. Excepciones
La sentencia try
try/except
try/finally
Mejoras relacionadas con excepciones en Python 2.5
La sentencia try/except/finally
La sentencia with
Mejoras en los generadores
Propagación de excepciones
La sentencia raise
Objetos de excepción
La jerarquía de las excepciones estándar
Clases de excepción estándar
Clases de excepción personalizadas
Excepciones personalizadas y herencia múltiple
Otras excepciones utilizadas en la biblioteca estándar
Estrategias para comprobar errores
LBYL contra EAFP
Utilización adecuada de EAFP
Gestión de errores en programas extensos
Registro de errores
El modulo logging
La sentencia assert
La variable integrada _ _debug_ _
Capítulo 7. Módulos
Objetos de los módulos
La sentencia import
El cuerpo del módulo
Atributos de los objetos del módulo
Objetos integrados Python
Cadenas de documentación de módulos
Variables privadas de los módulos
La sentencia from
La sentencia from ... import *
from contra import
La carga del módulo
Módulos integrados
Buscar el sistema de archivo para un módulo
El programa principal
La función reload
Importaciones circulares
Las entradas sys.modules
Importadores personalizados
Revincular _ _import_ _
Importar enlaces
Paquetes
Atributos especiales de los objetos de paquete
Importaciones absolutas contra importaciones relativas
Las utilidades para la distribución (distutils)
Python Eggs
Capítulo 8. Tipos integrados del núcleo
Tipos integrados
Funciones integradas
El módulo sys
El módulo copy
El módulo collections
deque
defaultdict
El módulo functional
El módulo bisect
El módulo heapq
El módulo UserDict
El módulo optparse
El módulo itertools
Capítulo 9. Cadenas y expresiones regulares
Métodos de los objetos de cadena
El módulo string
Sensibilidad Local
La función maketrans
Formatear la cadena
Sintaxis del especificador de formato
Locuciones habituales para formatear cadenas
Cadenas Templete
Encapsular y rellenar texto
El módulo pprint
El módulo repr
Unicode
El módulo codecs
El módulo unicodedata
Expresiones regulares y el módulo re
Sintaxis de las cadenas de patrón
Locuciones habituales de las expresiones regulares
Conjuntos de caracteres
Alternativas
Grupos
El argumento opcional flags
Comparar o Buscar
Anclar una cadena al inicio y al final
Objetos de las expresiones regulares
Objetos de concordancia
Las funciones del módulo re
Parte III. La biblioteca Python y los módulos de extensión
Capítulo 10. Operaciones de texto y archivo
Objetos de archivo
Crear un objeto de archivo mediante open
El archivo mode
Modos texto y binario
Almacenar en la memoria intermedia
Acceso secuencial y no secuencial
Atributos y métodos de objetos de archivo
Iteración en los objetos de archivo
Objetos tipo archivo y polimorfismo
El módulo tempfile
Módulos auxiliares para archivos de I/O (imput/output)
El módulo fileinput
El módulo linecache
El módulo struct
Los módulos StringIO y cStringIO
Archivos comprimidos
El módulo gzip
Ejemplo de la utilización de gzip:
El módulo bz2
El módulo tarfile
El módulo zipfile
El módulo zlib
El módulo os
Excepciones OSError
El módulo errno
Operaciones en el sistema de archivo
Atributos de la cadena de ruta del módulo os
Permisos
Funciones de archivo y directorio del módulo os
El módulo os.path
El módulo stat
El módulo filecmp
El módulo shutil
Operaciones del descriptor de archivos
Entrada y salida de texto
Salida estándar y error estándar
La sentencia print
La entrada estándar
El módulo getpass
Entrada y salida de texto abundante
El módulo readline
La consola de entrada y salida
El paquete curses
El módulo msvcrt
Los módulos Console y WConio
Sesiones interactivas de comandos
Inicializar una instancia de Cmd
Métodos de instancias de Cmd
Atributos de instancias de Cmd
Un ejemplo de uso del método Cmd
Internacionalización
El módulo locale
El módulo gettext
Utilizar el módulo gettext para la localización
Funciones principales del módulo gettext
Más recursos para la Internacionalización
Capítulo 11. Persistencia y bases de datos
Serialización
El módulo marshal
Un ejemplo de serialización mediante el módulo marshal
Los módulos pickle y cPickle
Funciones de los módulos pickle y cPickle
Un ejemplo de serialización mediante el módulo pickle
Instancias del módulo pickle
Personalización de la serialización con pickle medianteel módulo copy_reg
El módulo shelve
Un ejemplo de persistencia mediante shelve
Los módulos DBM
El módulo anydbm
El módulo dumbdbm
Los módulos dbm, gdbm y dbhash
El módulo whichdb
Ejemplos de uso de archivos de tipo DBM
La interfaz de DB Berkeley
Interfaces de BSD DB completas y simplificadas
El módulo bsddb
Ejemplos de uso de Berkeley DB
La API 2.0 de base de datos Python (DBAPI)
Clases de excepción
Seguridad en subprocesos
Estilo de parámetro
Funciones 'creadoras' (factory functions)
Atributos para la descripción de tipos
La función connect
Objetos de conexión
Objetos de cursor
Módulos compatibles con DBAPI
Gadfly
SQLite
Capítulo 12. Operaciones de tiempo
El módulo time
El módulo datetime
La clase date
La clase time
La clase datetime
La clase timedelta
El módulo pytz
El módulo dateutil
El módulo sched
El módulo calendar
El módulo mx.DateTime Module
Tipos de hora y fecha
El tipo DateTime
Funciones creadoras para DateTime
Métodos de las instancias de DateTime
Atributos de las instancias de DateTime
Cálculo aritmético en las instancias de DateTime
El tipo DateTimeDelta
Funciones creadoras para DateTimeDelta
Métodos de las instancias de DateTimeDelta
Atributos de las instancias de DateTimeDelta
Cálculo aritmático en las instancias de DateTimeDelta
Otros atributos
Submodelos
Capítulo 13. Controlar la ejecución
Ejecución dinámica y la sentencia exec
Cómo evitar la sentencia exec
Expresiones
La función compile y los objetos de código
Nunca utilizaremos exec o eval con código desconocido
Tipos internos
Objetos de tipo
El tipo objeto de código
El tipo estructura
Recogida de objetos no utilizados
El módulo gc
El módulo weakref
Funciones de finalización
Personalización de sitio y de usuario
Los módulos site y sitecustomize
Personalización de usuario
Capítulo 14. Procesos y subprocesos
Subprocesos en Python
El módulo thread
El módulo Queue
Métodos de las instancias de Queue
Personalizar la clase Queue por medio de la subclasificación
El módulo threading
Objetos de la clase Thread
Objetos para la sincronización de subprocesos
Parámetros de timeout
Objetos de las clases Lock y Rlock
Objetos de la clase Condition
Objetos de evento
Objetos de la clase Semaphore
Almacenamiento de subproceso local
Arquitectura de programa subprocesado
Entorno del proceso
Ejecutar otros programas
Ejecutar otros programas mediante el módulo os
El módulo Subprocess
Qué ejecutar, y cómo: args, executable, shell
Archivos de procesos secundarios: stdin, stdout, stderr, bufsize, universal_newlines, close_fds
Otros argumentos: preexec_fn, cwd, env, startupinfo,creationflags
Atributos de Subprocess. Instancias de Popen
Métodos de Subprocess. Instancias de Popen
poll
El módulo mmap
Métodos de los objetos de mmap
Cómo utilizar los objetos de mmap para IPC
Capítulo 15. Procesamiento numérico
Los módulos math y cmath
El módulo operator
Números aleatorios y pseudoaleatorios
Números aleatorios fuertes generados físicamentey de modo criptográfico
El módulo random
El módulo decimal
El módulo gmpy
Capítulo 16. Procesos y subprocesos
Subprocesos en Python
El módulo thread
El módulo Queue
Métodos de las instancias de Queue
Personalizar la clase Queue por medio de la subclasificación
El módulo threading
Objetos de la clase Thread
Objetos para la sincronización de subprocesos
Parámetros de timeout
Objetos de las clases Lock y Rlock
Objetos de la clase Condition
Objetos de evento
Objetos de la clase Semaphore
Almacenamiento de subproceso local
Arquitectura de programa subprocesado
Entorno del proceso
Ejecutar otros programas
Ejecutar otros programas mediante el módulo os
El módulo Subprocess
Qué ejecutar, y cómo: args, executable, shell
Archivos de procesos secundarios: stdin, stdout, stderr,bufsize, universal_newlines, close_fds
Otros argumentos: preexec_fn, cwd, env, startupinfo,creationflags
Atributos de Subprocess. Instancias de Popen
Métodos de Subprocess. Instancias de Popen
El módulo mmap
Métodos de los objetos de mmap
Cómo utilizar los objetos de mmap para IPC
Capítulo 17. El módulo Tkinter para las interfaces gráficasde usuario (GUI)
Aspectos fundamentales del módulo Tkinter
Cuadros de diálogo
El módulo tkMessageBox
El módulo tkSimpleDialog
El módulo tkFileDialog
El módulo tkColorChooser
Aspectos fundamentales de la clase Widget
Opciones de control habituales
Opciones de color
Opciones de tamaño
Opciones que expresan números de caracteres
Otras opciones habituales
Métodos de controles habituales
Objetos de variables del módulo Tkinter
Imágenes del módulo Tkinter
Controles sencillos utilizados con más frecuencia
La clase Button
La clase Checkbutton
La clase Entry
La clase Label
La clase Listbox
La clase Radiobutton
La clase Scale
La clase Scrollbar
Los controladores como contenedor
La clase Frame
La clase Toplevel
Menús
Métodos específicos de la clase Menu
Entradas de menús
Ejemplo de menú
El control de texto
El módulo ScrolledText
Métodos de la clase Text para los controles
Marcas
Etiquetas
Índices
Fuentes
Ejemplo de uso de la clase Text
El control de la clase Canvas
Los métodos de la clase Canvas en los elementos
El elemento línea de la clase Canvas
El elemento polígono de la clase Canvas
El elemento rectángulo de la clase Canvas
El elemento texto de la clase Canvas
Un ejemplo de trazado sencillo
Administración de diseños
Packer
Gridder
Placer
Eventos en el módulo Tkinter
El objeto de evento
Vincular llamadas de seguimiento a eventos
Nombres de eventos
Eventos de teclado
Eventos de ratón
Métodos relacionados con eventos
Un ejemplo de eventos
Otros métodos relacionados con las llamadas de seguimiento
Capítulo 18. Probar, Depurar y Optimizar
Probar
Prueba de unidad y prueba de sistema
El módulo doctest
El módulo unittest
La clase TestCase
Pruebas de unidad que gestionan gran cantidad de datos
Depurar
Antes de depurar
El módulo inspect
Ejemplo de uso del módulo inspect
El módulo traceback
El módulo pdb
La depuración en IDLE
El módulo warnings
Clases
Objetos
Filtros
Funciones
Optimización
Desarrollar una aplicación Python lo suficientemente rápida
Evaluación comparativa
Optimización a gran escala
Operaciones en listas
Operaciones en cadenas
Operaciones en diccionarios
Operaciones en conjuntos
Resumen de las veces que aparece O para las operacionesen tipos integrados Python
Análisis del rendimiento (profiling)
El módulo profile
Calibración
El módulo pstats
Optimización a pequeña escala
El módulo timeit
Desarrollar una cadena a partir de fragmentos
Buscar y ordenar
Evitar exec y from. . .import *
Optimizar bucles
Optimizar la I/O
Parte IV. Programación de páginas Web y de redes
Capítulo 19. Módulos para protocolos de red realizados por el cliente
El acceso a URL
El módulo urlparse
El módulo urllib
Funciones
La clase FancyURLopener
El módulo urllib2
Funciones
La clase Request
La clase OpenerDirector
Las clases del controlador
Gestionar la autentificación
Protocolos de correo electrónico
El módulo poplib
El módulo smtplib
Los protocolos HTTP y FTP
El módulo httplib
El módulo ftplib
Noticias en red
Las cadenas Response
Métodos
Ejemplo
Telnet
Computación distribuida
Otros protocolos
Capítulo 20. Socket y módulos para protocolos de red realizadospor el servidor
El módulo socket
Funciones del módulo socket
La clase socket
Servidor y cliente eco que utilizan los socket TCP
Servidor y cliente eco que utilizan los socket UDP
El funcionamiento timeout en el módulo socket
El módulo SocketServer
La clase BaseRequestHandler
Servidores HTTP
El módulo BaseHTTPServer
El módulo SimpleHTTPServer
El módulo CGIHTTPServer
El módulo SimpleXMLRPCServer
Programas socket dirigidos por eventos
El módulo select
Los módulos asyncore y asynchat
El módulo asyncore
El módulo asynchat
El marco de trabajo Twisted
Los paquetes twisted.internet y twisted.protocols
Reactores
Transmisores
Fábricas y controladores de protocolos
Servidor eco que utiliza Twisted
Capítulo 21. Programación en CGI y alternativas
CGI en Python
Métodos para el envío de formularios
El módulo cgi
Errores y salida en CGI
Mensajes de error
El módulo cgitb
Instalación de los programas CGI en Python
Programas CGI Python en servidores Web de Windows
Programas CGI Python en Apache
Programas CGI Python en Xitami
Cookies
El módulo Cookie
Métodos del módulo Cookie
Métodos y atributos de Morsel
Utilizar el módulo Cookie
Otros enfoques relacionados con el servidor
FastCGI
WSGI
mod_python
Personalizar servidores Python puros
Otros marcos de trabajo de nivel de abstracción superior
Webware
Quixote
web.py
Capítulo 22. MIME y las codificaciones de red
Codificación de datos binarios como texto
El módulo base64
El módulo quopri
El módulo uu
MIME y la gestión de formato del correo electrónico
Funciones en el paquete email
El módulo email.Message
El módulo email.Generator
Crear instancias de Messages
El módulo email.Encoders
El módulo email.Utils
Ejemplo de uso del paquete email
Las clases Message de los módulos rfc822 y mimetools
Capítulo 23. Texto estructurado: HTML
El módulo sgmllib
Analizar sintácticamente HTML mediante sgmllib
El módulo htmllib
El módulo htmlentitydefs
Analizar sintácticamente HTML mediante htmllib
El módulo HTMLParser
Analizar sintácticamente HTML mediante HTMLParser
La extensión BeautifulSoup
Analizar sintácticamente HTML mediante BeautifulSoup
Generar HTML
Integrar
Crear plantillas
El paquete Cheetah
El lenguaje para crear plantillas Cheetah
La clase Template
Ejemplo de uso del paquete Cheetah
Capítulo 24. Texto estructurado: XML
Introducción al análisis sintáctico de XML
Analizar sintácticamente XML mediante SAX
El paquete xml.sax
Atributos
Análisis sintáctico incremental
El módulo xml.sax.saxutils
Analizar sintácticamente XHTML mediante xml.sax
Analizar sintácticamente XML mediante DOM
El paquete xml.dom
Analizar sintácticamente XHTML mediante xml.dom.minidom
El módulo xml.dom.pulldom
Analizar sintácticamente XHTML mediante xml.dom.pulldom
Modificar y generar XML
Métodos creadores de un objeto de la clase Document
Métodos que modifican un objeto de la clase Element
Métodos que modifican un objeto de la clase Node
Métodos de salida de un objeto de la clase Node
Modificar y producir XHTML mediante xml.dom.minidom
Parte V. Ampliar e integrar
Capítulo 25. Ampliar e integrar el lenguaje Python clásico
Ampliar el lenguaje Python por medio de la interfaz API C de Python
Crear e instalar extensiones Python codificadas en C
Introducción a los módulos de extensión Python codificados en C
Devolver valores de las funciones de la interfaz API C de Python
Inicialización de módulos
La estructura PyMethodDef
Recuento de referencias
Acceder a los argumentos
Crear valores Python
Excepciones
Funciones de nivel abstracto
Funciones de nivel concreto
Ejemplo de extensión simple
Definir nuevos tipos
Datos por-instancia
La definición de PyTypeObject
Inicialización y finalización de instancias
Acceder a los atributos
Ejemplo de definición de tipo
Ampliar Python sin la interfaz API C de Python
Integrar Python
Instalar módulos de extensión residentes
Establecer argumentos
Inicialización y finalización Python
Ejecutar el código Python
Pyrex
Los parámetros de la función y la sentencia cdef
Declaraciones externas
Clases cdef
La sentencia ctypedef
La sentencia for . . . from
Expresiones Pyrex
Un ejemplo de Pyrex: Máximo común divisor
Capítulo 26. Ampliar e integrar Jython
Importar paquetes Java en Jython
El registro Jython
Accesibilidad
Conversiones de tipo
Llamadas a métodos Java sobrecargados
El módulo jarray
Las clases de la colección java.util
Subclasificar una clase Java
JavaBeans
Integrar Jython en Java
La clase PythonInterpreter
La clase _ _builtin_ _
La clase PyObject
La clase Py Class
Compilar Python en Java
El comando jythonc
Añadir métodos visibles Java
Los Applet y Servlet Python
Los applet Python
Los servlet Python
Capítulo 27. Distribuir extensiones y programas
La colección de utilidades para la distribución Python (distutils)
La distribución y su origen
El script setup.py
Metadatos sobre la distribución
Contenido de la distribución
Archivos de código fuente Python
Archivo de datos
Extensiones codificadas en C
El archivo setup.cfg
Los archivos MANIFEST.in y MANIFEST
Crear distribuciones prefabricadas mediante distutils
py2exe
py2app
cx_Freeze
PyInstaller
Índice alfabético
Otros clientes que compraron Python. Guía de referencia, también compraron:
Otros libros de Programación. Otros: