Estou fazendo minhas primeiras excursões em Python. Realmente é uma linguagem bastante suscinta e também muito elegante. Descobrir o jeito “pythonico” de fazer as coisas, especialmente para nós que viemos de outras linguagens como Java, chega a ser revelador (Não é raro se ter alguns momentos do tipo: Puxa, só isso!
).
Como novato querendo aprender a mexer em Python, vou relatar aqui meus progressos. Basicamente o objetivo é anotar para eu mesmo me lembrar, mas se puder ajudar a mais alguém, sem dúvida será bom.
Enfim, chega de papo. Estou montando uma solução para criação e transferência de arquivos compactados entre dois hosts. Eu poderia implementá-la em Java, Shell ou mesmo PHP sem problemas, mas optei por Python justamente para me forçar a aprender um pouco mais.
A primeira coisa que precisei foi apenas criar arquivos zip. Em Python é bastante simples:
>>> import zipfile.ZipFile
>>> meuzip = ZipFile('arquivo.zip', 'a')
>>> meuzip.write('conteudo.txt')
>>> meuzip.close()
Neste código, ZipFile é a classe que manipula arquivos compactados, arquivo.zip é o nome do arquivo no qual os demais serão adicionados (neste caso, apenas o arquivo conteudo.txt que está no mesmo diretório). O segundo parâmetro do construtor da classe (‘a’ppend) é um flag bem no estilo dos flags de manipulação de arquivos em C.
Ao fechar o arquivo depois de gravar, se você vir o diretório corrente, lá já estará o arquivo.zip recém-criado.
Simples, não!? E o que é melhor: nada dos chatos streams de Java.
Para mais informações, não deixe de ler a documentação do módulo zipfile do Python.