programacion paquetes módulo modulos lista importar importa estandar ejemplos cuando contenido biblioteca python module standard-library

paquetes - os.system python ejemplos



La mayoría de los módulos de Python útiles de la biblioteca estándar? (17)

Estoy enseñando una clase de posgrado de Python en la Universidad de París, y los estudiantes necesitan ser presentados a la biblioteca estándar. Quiero hablar con ellos sobre algunos de los módulos estándar más importantes.

¿Qué módulos crees que son imprescindibles? Aunque las respuestas probablemente varían dependiendo de su campo (programación web, ciencia, etc.), creo que algunos módulos son comúnmente necesarios: math , sys , re , os , os.path , logging , ... y tal vez: collections , struct , ...

¿Qué módulos sugieres que presente, en un espacio de 1 o 2 horas?


Además de los que mencionaste, encontré los subprocesos y los módulos sqlite3 particularmente útiles. Pero ciertamente les aconsejo a los estudiantes que echen un vistazo a la lista de módulos de biblioteca estándar. Además, desde módulos fuera de la biblioteca estándar, mencionaría numpy (o numarray) y pyparsing.


Agregaría urllib2 a la lista.


Buscaría algunos módulos que tengan más sentido para un usuario / programador de computadora típico que realiza tareas típicas de la computadora. De esta forma, existe la mayor posibilidad de que realmente puedan usar Python en su propio tiempo.

En mi opinión, las operaciones que probablemente realizarán la mayoría de la gente son operaciones de archivos, por ejemplo revisar cada archivo en un directorio y realizar alguna acción sobre él.

Por lo tanto, diría que los módulos: os y os.path son probablemente los más importantes, y también mencionan glob, fnmatch y shutil . Además, el subproceso también puede ser muy útil, ya que tiende a utilizarse en el contexto mencionado anteriormente.

Por último, me gustaría ir con optparse , ya que eso los pondrá rápidamente en hacer programas utilizables y amigables con los programadores, lo que con suerte también los alentará a escribir programas que otras personas quieran usar.


Creo que todos aquí obtuvieron todos los más importantes, excepto sys . Si nos fijamos en el código de Python real, sys es probablemente uno de los módulos más utilizados (generalmente debido a sys.version ).

Además, no es realmente un módulo, pero mencionaría __future__ .

Y nadie debería usar Python sin import this .


Definitivamente agrega BeautifulSoup . Uno de los mejores (si no el mejor) analizador de HTML.

Editar:

Vaya, este no es un módulo "estándar" per se , pero debería ser si se hace un análisis HTML.


Depende un poco de lo que harán y del nivel que tengan. Algunos módulos que me gustaría que alguien me señalara cuando comencé son:

  • StringIO: para evitar que vuelvan a implementarlo, lo cual harán si no lo descubren.
  • logging - para ponerlos en el camino correcto cuando se trata de depurar las impresiones
  • pickle: para evitar que intenten usar XML en todas partes.
  • xml.etree.ElementTree: para guardarlos del modelo DOM cuando realmente necesitan trabajar con XML.
  • pprint: para hacer que las estructuras anidadas en Python sean menos intimidantes.

Eche un vistazo a PyMOTW (Módulo Python de la semana). Aunque no es estrictamente stdlib, es un gran recurso de gemas obvias y no tan obvias de python stdlib. Además, también sirve como excelente documentación de los módulos introducidos.


En solo una hora y dos horas, presentaría easy_install y el repositorio de PyPI : incluso si no están en la lib estándar, le permiten instalar muchos otros módulos externos, y es el primer lugar donde buscar cuando puede no encuentra en la lib estándar.

Aparte de eso, presentaría numpy, re, doctest / unittest y quizás pickle.


Es difícil vivir sin timeit

>>> # Python shell usage ... import timeit >>> tt = timeit.Timer("foo = ''time this''", "print ''setup with this arg''") >>> tt.timeit(number=1000) setup with this arg 0.00021100044250488281 >>> [mpenning@Bucksnort ~]$ # Bash shell usage [mpenning@Bucksnort ~]$ # 5 runs with 1000 samples each. [mpenning@Bucksnort ~]$ python -m timeit -n 1000 -r 5 -s "print ''setup w/ this arg''" / "foo = ''time this''" setup w/ this arg setup w/ this arg setup w/ this arg setup w/ this arg setup w/ this arg 1000 loops, best of 5: 0.173 usec per loop [mpenning@Bucksnort ~]$


Los módulos para cubrir en un espacio de 1-2 horas dependen completamente del interés o enfoque de su audiencia. ¿Qué otras clases están tomando? ¿De qué están preparados para usar de inmediato?

Asegúrese de mencionar math , decimal y datetime y datetime y time .

Para los tipos de TI que realizarán trabajos orientados a archivos: glob , fnmatch , os , os.path , tempfile y shutil .

La gente de la base de datos debe escuchar sobre sqlite y json .

La audiencia de simulación puede querer escuchar sobre el random .

Los desarrolladores web deben escuchar sobre urllib2 desde el punto de vista del cliente. También Beautiful Soup y un analizador XML de su elección.

Los desarrolladores web deben escuchar sobre el logging y wsgiref desde el punto de vista del servidor.


No se olvide de datetime, weakref, pickle, StringIO, heapq, pueden estar enhebrando.

Y numpy también vale la pena mencionar, aunque no es de la biblioteca estándar.


Para los estudiantes de ciencias, un módulo raramente escuchado pero poderoso ''networkx'' será valioso. Pero necesitan instalarlo primero. Este módulo está bien documentado: http://networkx.lanl.gov/index.html


Pondría algo de peso en el módulo decimal . Si son principiantes en la programación, ciertamente no estarán al tanto de las implicaciones de la precisión del punto flotante . El módulo decimal es extremadamente valioso si se trabaja con monedas u otras unidades que deben conservar la precisión decimal exacta a través de varias operaciones matemáticas.

Por supuesto, es probable que desee tocar situaciones cuando no necesita ser tan preciso también.


Solo recuerdo un módulo muy práctico: copiar.
Utilizo la función de copia profunda () con bastante frecuencia.


os y os.path: porque esos son los módulos principales que cualquiera requerirá para escribir código independiente de plataforma en python y los estudiantes pueden cambiar de script de shell a python después de aprender os y os.path.


itertools y functools . Estos módulos operan sobre abstracciones que se encuentran en todas partes en la programación, por lo que creo que son útiles para estudiar. Entre otras cosas más prácticas, los módulos xml ( xml.dom , xml.sax ) pueden ser muy útiles.


operator , al lado de lo que ya se mencionó.