osdir.com
mailing list archive

Subject: Utilizando a linguagem Python para manipulação de arquivos - msg#00019

List: culture.publications.dicas

Date: Prev Next Index Thread: Prev Next Index
********************* Oklop Web Hosting *********************
Domínio grátis na compra de uma hospedagem na Oklop
(domínios .com ou .net) além de 10% de desconto na mensalidade.
Na hora da compra, digite o código da promoção e
tenha seu endereço na web inteiramente grátis!
>>>>>>>>>>>>>>>> Visite http://br.oklop.com >>>>>>>>>>>>>>>
Código: DICAS-L2008
Domínio válido por 1 ano.
Promoção válida para assinantes do site www.dicas-l.com.br.
Válido para os planos Basic, Plus, Super, Advanced, Premium, Nitro.
1 domínio por conta de hospedagem.
Validade da promoção: 03/03/2008 a 03/04/2008.
--------------------------------------------------------------------------------

Utilizando a linguagem Python para manipulação de arquivos
==========================================================

Colaboração: Rafael Naufal

Data de Publicação: 13 de março de 2008

A linguagem Python (http://www.python.org) é muito efetiva para a criação
de scripts de manipulação de arquivos, automatizando tarefas bastante úteis.

Ao se pensar em liberar o projeto
JFileContentManager (http://fcmanager.wiki.sourceforge.net/) no repositório
de projetos open-source SourceForge, não se tinha adicionado os termos da
licensa LGPL em cada .java presente no projeto. Portanto, para este caso,
a linguagem Python tornou-se bastante útil, em que um script foi criado e
executado sobre a raiz do projeto, adicionando os preâmbulos da licensa para
cada classe do projeto. Segue o código fonte do script:


1:# Python script to add the LGPL notices to each java file of the
FileContentManager project.
2:import os, glob, sys
3:License = """\
4:/**
5:*FileContentManager is a Java based file manager desktop application,
6:*it can show, edit and manipulate the content of the files archived inside
a zip.
7:*
8:*Copyright (C) 2008
9:*
10:*Created by Camila Sanchez [http://mimix.wordpress.com/], Rafael Naufal
[http://rnaufal.livejournal.com]
11:and Rodrigo [rdomartins@xxxxxxxxx]
12:*
13:*FileContentManager is free software; you can redistribute it and/or
14:*modify it under the terms of the GNU Lesser General Public
15:*License as published by the Free Software Foundation; either
16:*version 2.1 of the License, or (at your option) any later version.
17:*
18:*This library is distributed in the hope that it will be useful,
19:*but WITHOUT ANY WARRANTY; without even the implied warranty of
20:*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21:*Lesser General Public License for more details.
22:*
23:*You should have received a copy of the GNU Lesser General Public
24:*License along with FileContentManager; if not, write to the Free Software
25:*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
26:
27:size = len(sys.argv)
28:if size == 1 or size > 2:
29: print "Usage: AddLicense.py $1"
30: sys.exit(1)
31:inputPath = sys.argv[1]
32:if not os.path.exists(inputPath):
33: print inputPath, "does not exist on disk"
34: sys.exit(1)
35:if not os.path.isdir(inputPath):
36: print inputPath, "isn't a dir"
37: sys.exit(1)
38:for path, dirs, files in os.walk(inputPath):
39: fileWithLicense = ''
40: for filepath in [ os.path.join(path, f)
41: for f in files if f.endswith(".java")]:
42: content = file(filepath).read()
43: f = file(filepath, "w")
44: print >>f, License + "\n" + content
45: f.close()


License é uma String multi-line em Python. A ação principal se inicia com
os.walk(), que percorre cada arquivo .java no diretório, informado
pelo usuário por meio da linha de comando, deste modo:


python AddLicense.py ${path}


onde ${path} define o diretório raiz do projeto. O caminho completo
de cada arquivo .java é produzido. Quando um arquivo cujo match feito é
encontrado, o arquivo da classe é aberto e seu conteúdo é atribuído à variável
content. Portanto, a string da licensa é adicionada no início do arquivo
e este é escrito no disco. Os comandos de print utilizam a sintaxe de
redirecionamento, por exemplo:


print >>f, License + "\n" + content


>>f envia as informações para o arquivo e não para o console. Finalizando,
o desenvolvimento do script foi bastante rápido e ao mesmo tempo trouxe
um retorno muito valioso, evitando uma tarefa tediosa de editar cada
arquivo manualmente. A dica completa em inglês pode ser visualizada
aqui (http://rnaufal.livejournal.com/17681.html)

Rafael Naufal (http://rnaufal.livejournal.com) é cientista da
computação formado na PUC-SP e pós-graduando em Engenharia de Software pelo ITA.
--------------------------------------------------------------------
JDBC 2
Editora Novatec
http://www.novatec.com.br/guias/jdbc2/
Livros da Editora Novatec com desconto para assinantes da Dicas-L
Código da promoção: DICASL01
Desconto: 15%
Validade: 31/03/2008
------------------------------------------------------------------------
Colabore com a Dicas-L. Publique seu comentário sobre esta mensagem
em http://www.Dicas-L.com.br/dicas-l/20080313.php
--------------------------------------------------------------------
Veja também do arquivo da Dicas-L:

"Programa livre para digitação"
http://www.dicas-l.com.br/dicas-l/20050127.php

"As Dez Dicas Mais Recomendadas"
http://www.dicas-l.com.br/dicas-l/20040712.php

"Terapia da Destruição"
http://www.dicas-l.com.br/dicas-l/20050120.php

"Auto completar com o sudo no Ubuntu"
http://www.dicas-l.com.br/dicas-l/20050910.php

"Vim - Exibição de caracteres invisíveis"
http://www.dicas-l.com.br/dicas-l/20040409.php

-------------------------------------------------------------------------
Descadastramento: http://www.dicas-l.com.br/descadastramento.php
-------------------------------------------------------------------------
As mensagens da lista Dicas-L são veiculadas diariamente
para 29714 assinantes.

Todas as mensagens da Dicas-L ficam armazenadas em
http://www.Dicas-L.com.br/dicas-l/

A redistribuição desta e outras mensagens da lista Dicas-L pode
ser feita livremente segundo a licença Creative Commons
http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt

Dicas-L: Uma dica por dia desde 3 de março de 1997
-------------------------------------------------------------------------
Newsfeed RSS: http://www.dicas-l.com.br/index.xml
-------------------------------------------------------------------------



Was this page helpful?
Yes No
Thread at a glance:

Previous Message by Date: click to view message preview

Cesar Brod: Células-tronco para todos

A coluna "Cesar Brod" desta semana traz o artigo "Células-tronco para todos". O artigo na integra encontra-se em http://www.Dicas-L.com.br/brod/brod_20080312.php :.: Resumo :.: No artigo desta semana, Cesar Brod, reflete e coloca em debate o real alcance das pesquisas sobre o uso das células-tronco de embriões humanos. Qual a sua opinião sobre o assunto? RSS: http://www.Dicas-L.com.br/brod/index.xml Obrigado, Rubens

Next Message by Date: click to view message preview

Estágio Unicamp em Desenvolvimento Web

O Centro de Computação da Unicamp está selecionando estagiário para atuar em desenvolvimento Web, na equipe de software livre. A carga horária do estágio é de 40 horas semanais, no período das 8:30 as 17:30. O Interessado deve estar cursando nível superior e residir próximo a Campinas, São Paulo. Salário: R$ 902,14 ==REQUISITOS OBRIGATÓRIOS== vontade de aprender, companheirismo, boa vontade, bom humor, espírito de equipe, colaboração e estar de bem com a vida. ==Requisitos Desejáveis== - noções de programação PHP/PERL/HTML - noções dos gerenciadores de Banco de Dados MySQL / PostgreSQL. Os interessados deverão preencher o questionário online que se encontra em http://www.ead.unicamp.br/surveyor/index.php?sid=36, até o dia 29 de março de 2008.

Previous Message by Thread: click to view message preview

Cesar Brod: Células-tronco para todos

A coluna "Cesar Brod" desta semana traz o artigo "Células-tronco para todos". O artigo na integra encontra-se em http://www.Dicas-L.com.br/brod/brod_20080312.php :.: Resumo :.: No artigo desta semana, Cesar Brod, reflete e coloca em debate o real alcance das pesquisas sobre o uso das células-tronco de embriões humanos. Qual a sua opinião sobre o assunto? RSS: http://www.Dicas-L.com.br/brod/index.xml Obrigado, Rubens

Next Message by Thread: click to view message preview

Estágio Unicamp em Desenvolvimento Web

O Centro de Computação da Unicamp está selecionando estagiário para atuar em desenvolvimento Web, na equipe de software livre. A carga horária do estágio é de 40 horas semanais, no período das 8:30 as 17:30. O Interessado deve estar cursando nível superior e residir próximo a Campinas, São Paulo. Salário: R$ 902,14 ==REQUISITOS OBRIGATÓRIOS== vontade de aprender, companheirismo, boa vontade, bom humor, espírito de equipe, colaboração e estar de bem com a vida. ==Requisitos Desejáveis== - noções de programação PHP/PERL/HTML - noções dos gerenciadores de Banco de Dados MySQL / PostgreSQL. Os interessados deverão preencher o questionário online que se encontra em http://www.ead.unicamp.br/surveyor/index.php?sid=36, até o dia 29 de março de 2008.
Sign up for updates to this mailing list. email:
Loading Comments...
Home | News | Patents | Sitemap | FAQ | advertise

Advertising by