Biblioteca Padrão

A Biblioteca padrão do Python contém uma grande quantidade de módulos úteis e é parte de cada instalação padrão do Python. É importante se familiarizar com a Biblioteca Padrão Python, pois muitos problemas podem ser resolvidos rapidamente se você estiver familiarizado com a variedade de coisas que essas bibliotecas podem fazer.

Exploraremos alguns dos módulos comumente usados nesta biblioteca. Você pode encontrar detalhes completos para todos os módulos na biblioteca padrão do Python no 'Library Reference' seção da documentação que acompanha a instalação do Python.

Vamos explorar alguns módulos úteis.

CUIDADO: Se você encontrar os tópicos neste capítulo muito avançados, você pode ignorar este capítulo. No entanto, recomendo voltar a este capítulo quando estiver mais à vontade com a programação usando o Python.

sys módulo

O sys módulo contém funcionalidades específicas do sistema. Já vimos que o sys.argv lista contém os argumentos de linha de comando.

Suponhamos que desejemos verificar a versão do software Python que está sendo usado, o sys módulo nos dá essa informação.

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=6, micro=0, releaselevel='final', serial=0)
>>> sys.version_info.major == 3
True

Como funciona

O sys módulo tem um version_info tupla que nos dá a informação da versão. A primeira entrada é a versão principal. Podemos tirar essa informação para usá-la.

logging módulo

E se você quisesse ter algumas mensagens de depuração ou mensagens importantes para serem armazenadas em algum lugar, para que você possa verificar se seu programa foi executado como seria de esperar? Como você "armazena em algum lugar" essas mensagens? Isso pode ser alcançado usando o logging módulo.

Save as stdlib_logging.py:

import os
import platform
import logging

if platform.platform().startswith('Windows'):
    logging_file = os.path.join(os.getenv('HOMEDRIVE'),
                                os.getenv('HOMEPATH'),
                                'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),
                                'test.log')

print("Logging to", logging_file)

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s : %(levelname)s : %(message)s',
    filename=logging_file,
    filemode='w',
)

logging.debug("Start of the program")
logging.info("Doing something")
logging.warning("Dying now")

Saída:

$ python stdlib_logging.py
Logging to /Users/swa/test.log

$ cat /Users/swa/test.log
2014-03-29 09:27:36,660 : DEBUG : Start of the program
2014-03-29 09:27:36,660 : INFO : Doing something
2014-03-29 09:27:36,660 : WARNING : Dying now

O comando cat é usado na linha de comando para ler o arquivo 'test.log'. Se o cat comando não está disponível, você pode abrir o test.log arquivo em um editor de texto em vez disso.

Como funciona

Usamos três módulos da biblioteca padrão - o os módulo para interagir com o sistema operacional, o platform módulo para informações sobre a plataforma, ou seja, o sistema operacional e o logging módulo para log informação.

Primeiro, verificamos qual o sistema operacional que estamos usando, verificando a string retornada por platform.platform() (Para mais informações, veja import platform; help(platform)). Se é o Windows, descobrimos a unidade doméstica, a pasta inicial e o nome do arquivo onde queremos armazenar as informações. Colocando estas três partes juntas, obtemos a localização completa do arquivo. Para outras plataformas, precisamos saber apenas a pasta inicial do usuário e obtemos a localização completa do arquivo.

Nós usamos o os.path.join() função para juntar essas três partes da localização. A razão para usar uma função especial em vez de apenas adicionar as seqüências de caracteres juntas é porque esta função assegurará que a localização completa corresponda ao formato esperado pelo sistema operacional. Note o join()' método que usamos aqui que faz parte doosO módulo é diferente do método da cordajoin()` that we've used elsewhere in this book.

Nós configuramos o logging módulo para escrever todas as mensagens em um formato específico para o arquivo que especificamos.

Finalmente, podemos colocar mensagens que são destinadas a depuração, informação, aviso ou mesmo mensagens críticas. Uma vez que o programa foi executado, podemos verificar este arquivo e saberemos o que aconteceu no programa, mesmo que nenhuma informação tenha sido exibida para o usuário que está executando o programa.

Série Módulo da Semana

Há muito mais a ser explorado na biblioteca padrão, como debugging, lidar com opções de linha de comando, expressões regulares e assim por diante.

A melhor maneira de explorar ainda mais a biblioteca padrão é ler Doug Hellmann's excelente Python Module of the Week série (também disponível como livro) e lendo o Documentação de Python.

Resumo

Nós exploramos algumas das funcionalidades de muitos módulos na Python Standard Library. É altamente recomendável navegar pelo Documentação da biblioteca padrão do Python para ter uma idéia de todos os módulos que estão disponíveis.

Em seguida, vamos abordar vários aspectos do Python que farão o nosso passeio de Python mais completo.