Olá queridos alunos!
Espero que todos estejam gostando tanto destas aulas quanto eu! Graças à vocês eu também estou aprendendo bastante sobre a linguagem, muitos comentários que vocês fazem me ajudam a perceber novos horizontes pythonescos. Então relaxem, peguem um café e curtam as aulas!
Ahh, uma dica que foi dada pelo Jamilson no fórum é a Lista de Exercícios do Python Brasil. Eu ainda não fiz os exercícios, mas assim que der um tempinho farei!
Outra coisinha… Nesta semana eu resolvi meu primeiro problema real com Python! Fiquei muito feliz por ter usado um pouco mais de 40 linhas, incluindo comentários, para fazer um script de conversão de arquivos de logs para arquivos html! Ficou supimpa! hehe. Bem chega de recados e vamos à aula de hoje!
Nós já falamos sobre como receber dados do usuário usando a função raw_input() e também já sabemos ler arquivos texto, mas agora vamos aprender a passar parâmetros para nossos programas via linha de comando! Para isso vamos usar o módulo “sys” do Python. Este módulo nos permite usar algumas informações do sistema, recomendo que vocês o estudem mais a fundo, vale a pena
Bem o que eu quero fazer é o seguinte, eu quero, por exemplo, chamar um programa dessa forma, no terminal:
$ programa.py arquivo_entrada.txt arquivo_saida.txt
Neste exemplo estariamos passando dois parâmetros para o programa, um arquivo de entrada e um arquivo de saída, ambos arquivos de texto.
Para fazer nossos programas entenderem esses parâmetros vamos utilizar a lista argv, do módulo sys, assim:
1 2 3 4 5 | #!/usr/bin/env python # -*- coding: utf-8 -*- import sys for param in sys.argv : print(param) |
Ou seja, cada item da lista sys.argv é um parâmetro passado para o programa, vejam este exemplo:
$ ./param.py oi este é um teste
./param.py
oi
este
é
um
teste
Como vocês podem ver o primeiro parâmetro é sempre o nome do programa que foi chamado na linha de comando, neste caso o programa param.py, para pegarmos apenas os parâmetros poderiamos fazer algo assim:
1 2 3 4 | #!/usr/bin/env python # -*- coding: utf-8 -*- import sys param = sys.argv[1:] |
Neste caso a lista de parâmetros seria armazenada na variável param, ou seja, tudo coisa bem simples =)
Bem, por hoje é só. Como vocês podem reparar as aulas estão ficando mais curtas, mas vou exigir um pouco mais de vocês nos exercícios.
Lição de Casa!
Hoje vou querer o seguinte, vocês precisam baixar este arquivo, que é apenas um ls do meu /etc, vocês vão fazer um programa que receba o nome de um arquivo via parâmetro na linha de comando, no caso este arquivo, e o transforme em html. Na verdade eu quero uma tabela com três colunas mostrando todos os nomes de arquivos e diretórios que estão neste arquivo, algo assim:
| arquivo1 | arquivo2 | arquivo3 |
| arquivo4 | arquivo5 | arquivo6 |
Só isso, o arquivo de saída deve ser ls_etc.html
Boa sorte!
Outros textos que você pode gostar:
- Curso de Python – Aula 12 – Manipulando Arquivos Olá alunos! Semana passada não teve aula, eu estava...
- Curso de Python – Aula 11 – Funções e exercícios Olá pessoal! A aula de hoje está sendo escrita...
- Curso de Python – Aula 15 – Mais sobre Orientação à Objetos Olá alunos! Na aula passada vimos um básico sobre...
Posts relacionados trazidos a você pelo Yet Another Related Posts Plugin.















>

Tarcisio
on fev 16th, 2009
@ 14:25:
Alguem poderia me explicar essa aula?
não consegui entender nada.. =/
Obrigado!
[Resposta]
Márcio
on fev 16th, 2009
@ 16:32:
Essa lição foi bacana! Até revisei uns conceitos de tabela em HTML que eu já tinha esquecido.
[Resposta]
Fagner
on fev 16th, 2009
@ 19:36:
Então Júnior, seria possível você disponbilizar esse script que você fez? Acho que seria uma boa.
[Resposta]
Gustavo
on fev 19th, 2009
@ 19:03:
bah
dei uma ratiada no meu programa quem mandei =p
vai repeti o mesmo arquivo 3 vezes
haha
mas ja resolvi aqui
mas gostei do exercicio tb
fez pensar um poco mais.
[Resposta]
Rodrigo Cesar
on fev 28th, 2009
@ 20:10:
Legal esse exercicio, tive que estudar html. Demorou mais ficou como pedido
vou postar o meu no forum.
[Resposta]
Curso de Python « Planeta Livre
on mar 8th, 2009
@ 23:03:
[...] Aula 13 – Passando Argumentos Via Terminal; [...]
Cássio Baptistussi
on abr 29th, 2009
@ 17:50:
Não entendi nada. Será que dá pra fazer este exercício sem con
conhecer html?
[Resposta]