Python: Parâmetros em linha de comando
Coff… coff.. coff…
Depois de muito tempo, mais um quick post sobre Python no estilo “Guia de Referência para Consulta Futura”.
Em Shell Script uma coisa muito útil é processamento de parâmetros passados via linha de comando.
$ meu_super_script.sh param1 param2 param3 paramN
No script você pode fazer uso dos parâmetros através das variáveis $0, $1, $2 e assim por diante.
Em Python pode-se utilizar o módulo sys e o atributo argv.
print sys.argv
Simples assim. =)
str_replace.cpp
#include <iostream>
#include <string>
#include <assert.h>
using namespace std;
string str_replace(string searchString, string replaceString, string str)
{
assert( searchString != replaceString );
string::size_type pos = 0;
while ( (pos = str.find(searchString, pos)) != string::npos ) {
str.replace( pos, searchString.size(), replaceString );
pos++;
}
return str;
}
int main()
{
string somestr = “This is just a string”;
string replaced = str_replace(“just”, “not”, somestr);
cout << replaced << endl;
}
open() – Python manipulando arquivo
Post rápido sobre Python.
A função nativa open() pode ser usada para manipular arquivos em Python. Sua sintaxe básica é:
file_object = open(filename, mode)
Onde filename é, obviamente, o nome do arquivo a ser manipulado.
mode é o modo como o arquivo será aberto, alguns dos possíveis valores:
r – leitura
w – escrita (sobreescrevendo conteúdo anterior, caso exista)
a – escrita (anexando ao conteúdo anterior)
r+ – leitura e escrita
Este argumento é opcional e caso omitido, assume o valor ‘r’.
Alguns dos métodos do objeto:
read() – lê todo o conteúdo do arquivo
readline() – lê uma linha do arquivo
readlines() – lê todas as linhas do arquivo
seek() – posiciona o “cursor” de leitura
write(conteudo) – escreve ‘conteudo’ no arquivo
E, é claro, não se esquecer de close() para fechar o arquivo.
Como exemplo, vamos fazer um cat beeeem simples em Python.
$ cd /home/francisco/python/exemplos
$ vim cat.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# cat.py
#
# Simula o funcionamento básico do básico do básico do utilitário cat.
#
#
import sys
def main():
try:
filename = sys.argv[1]
except:
print ‘Necessário fornecer um parâmetro: nome do arquivo’
sys.exit(1)
try:
f = open(filename)
for linha in f.readlines():
limpa = linha.strip(‘\n‘)
print limpa
f.close()
except IOError:
print ‘Não foi possível abrir arquivo’, filename
sys.exit(1)
if __name__ == “__main__”:
main()
HelloWorld.cpp
#include <iostream>
#include “FranciscoAmbrozio.h”
void FranciscoAmbrozio::HelloWorld()
{
std::cout << “Hello World!\n”
}
int main()
{
fcoambrozio = new FranciscoAmbrozio;
fcoambrozio.HelloWorld();
std::cout << “I’m back (I hope so).\n”;
}