Category: Python

  • Django PostgreSQL used session on Github Actions test error

    If you’re using the PostgreSQL service on Github Actions as a backend database for your Django tests, you might encounter the following error on any particular test: And the following at the end of your test run: The problem is that Django reuses the database connection, and while locally my tests were passing, on Github…

  • Alfabeto em Python

    Não precisa digitar na mão: alfabeto = ‘abcdefghijklmnopqrstuvwxyz’ Isso imprime as letras minúsculas: print map(chr, range(97, 123)) E isso as maiúsculas: print map(chr, range(65, 91)) Mas você também pode contar com o próprio Python (pilhas incluí­das, afinal!): from string import ascii_letters print ascii_letters E de novo: import string print string.ascii_lowercase print string.ascii_uppercase

  • Crivo de Eratóstenes em Python

    Estou fazendo os desafios do Projeto Euler e nos dez primeiros já vi três com números primos. Meu primeiro algoritmo ingenuamente testava a primalidade de um número tentando dividí-lo por todos os números menores que ele. Uma lista com 1.000 números primos dessa maneira gera em pouco menos de um segundo no meu computador. Já…

  • RuntimeError: dictionary changed size during iteration

    Em Python, o erro do título desse post acontece quando você percorre um dicionário e ele é mudado durante o laço. Isso pode acontecer quando fazemos: >>> dicionario = {‘nome’: ‘Julio’, ‘sobrenome’: ‘Nobrega’} >>> for k, v in dicionario.iteritems(): … print v … del dicionario[k] … Nobrega Traceback (most recent call last): File “”, line…

  • Thread em Python

    Comecei a fazer uma GUI usando o wxPython para tocar um arquivo de música com o código de ontem. Implementei o botão de seleção do arquivo, que até filtra os arquivos a serem mostrados de acordo com as extensões especificadas. No meu caso, *.mp3 e *.ogg. Só que selecionado o arquivo, a interface travava. Pesquisando…

  • MP3 com Python

    Sem bibliotecas adicionais como libmpg123 ou gstreamer ou qualquer outra. Puro Python. Bem, quase, já que o PyMedia é escrito em sua maioria em C, mas depois de instalado você pode usar o import para trazê-lo. import pymedia.audio.sound as sound import pymedia.audio.acodec as acodec def playFile(file_name): file_extension = file_name.split(‘.’ )[ -1 ].lower() parms = {‘id’:…

  • Navegando com Mechanoid

    Existe um programa chamado Mechanoid feito em Python, uma colagem dos programas que compõem o Mechanize, só que voltado à execução de determinadas tarefas específicas, como entrar no Sourceforge ou conferir o Yahoo Mail. Basicamente ele emula um navegador, abrindo páginas, clicando em links, preenchendo formulários. É tão fácil que dói os olhos…

  • SLOC em Python

    Um pequeno script em Python para contar o número de linhas de todos os arquivos em um diretório (e sub-diretórios). Apenas edite a variável diretorio. import os.path diretorio = “/var/www/html/site/” def visit(arg, dirname, names): for arquivo in names: arquivo_caminho = os.path.join(dirname, arquivo) if os.path.isfile(arquivo_caminho): f = open(arquivo_caminho) lines = len(f.readlines()) arquivos.append(lines) arquivos = [] os.path.walk(diretorio,…