InFog

Um blog sobre GNU, Linux, Open Source, Desenvolvimento e Nerdices em Geral

Curso de Python – Aula 13 – Passando Argumentos Via Terminal

Tags: ,

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:

  1. Curso de Python – Aula 12 – Manipulando Arquivos Olá alunos! Semana passada não teve aula, eu estava...
  2. Curso de Python – Aula 11 – Funções e exercícios Olá pessoal! A aula de hoje está sendo escrita...
  3. 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.

Tags: ,

7 Comentários to “Curso de Python – Aula 13 – Passando Argumentos Via Terminal”


  1. Tarcisio
    on fev 16th, 2009
    @ 14:25

    Alguem poderia me explicar essa aula?
    não consegui entender nada.. =/

    Obrigado!

    [Resposta]


  2. 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]


  3. 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]


  4. 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]


  5. 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]


  6. Curso de Python « Planeta Livre
    on mar 8th, 2009
    @ 23:03

    [...] Aula 13 – Passando Argumentos Via Terminal; [...]


  7. 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]

Deixar uma Resposta

© 2009 InFog. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.