As festas chegaram e, com elas, os amigos secretos. Para facilitar a vida dos sorteios segue um pequeno script em python que pega um lista de pessoas, sorteia e envia um email para cada uma com o nome do seu amigo secreto. O script evita que uma pessoa pegue a si mesmo, ou alguém deixe de ser sorteado:
#!/usr/bin/env python # -*- encoding: utf-8 -*- from random import shuffle import os arquivo = open("amigos.txt","r") pessoas = arquivo.readlines() shuffle(pessoas) for par in zip(pessoas, pessoas[1:] + pessoas [:1]): envia = os.popen("/usr/bin/mail -s '[sorteio] Seu amigo secreto é ...'" + par[0].replace("\n","").split("-")[1], "w") print >> envia, "tchandandandan .... \n\n\n\n\n\n\n\n\n\n" + par[1].replace("\n","").split("-")[0] envia.close() arquivo.close()
Para rodar o script você só precisa do python e de um arquivo chamado amigos.txt, com o nome das pessoas dentro no formato Nome - email.
Exemplo:
Fulano Taltal - meu@email.com.br
Sicrana - sicrana@hotmail.com
Beltrana Gatinha - com-cam@tal.com.br
rá! muito util!
com esse script nao tem como ser marmelada..
vlW!
Nem precisa usar zip(), acho que fica melhor com pop, assim você garante que a lista fique circular e mais legível no código:
p1 = pessoas.pop() <- Primeiro indivíduo, sorteia:
p2 = pessoas.pop() <- Segundo indivíduo, sorteia:
…
E por consequência, o último indivíduo da lista sorteia p1, o primeiro retirado (fechando o círculo).
Como você deu um shuffle, o sorteio continua aleatório :-)
Opa.. tive que mudar o >> por >>. Aí deu certo..
E vale lembrar que a pessoa precisa ter o sendmail instalado e configurado para poder funcionar corretamente.
show de bola cara. ;]
NERD!!!!!!!!!!!!!!
HAHAHAHHA
Adorei vou fazer assim tb! :D
[...] festas chegaram e, com elas, os amigos secretos. Para facilitar a vida dos sorteios segue um pequeno script que fiz ano passado. O script pega um lista de pessoas, sorteia e envia um email para cada uma com o nome do seu amigo [...]