<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krix Apolinário &#187; Python</title>
	<atom:link href="http://blog.krix.com.br/category/linguagem/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.krix.com.br</link>
	<description></description>
	<lastBuildDate>Fri, 23 Jul 2010 18:20:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Lançado Python 2.7</title>
		<link>http://blog.krix.com.br/2010/07/06/lancado-python-2-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=lancado-python-2-7</link>
		<comments>http://blog.krix.com.br/2010/07/06/lancado-python-2-7/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 17:26:28 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=3005</guid>
		<description><![CDATA[A equipe de desenvolvimento Python anunciou ontem o lançamento da versão final do Python 2.7 e será a última versão principal da série 2.x, contudo será também um período extendido para correção de bugs. Esta nova versão inclui muitos recursos que foram liberados primeiramente no Python 3.1. Para ver com mais detalhes as alterações nesta [...]]]></description>
			<content:encoded><![CDATA[
<p>A equipe de desenvolvimento Python <a href="http://lwn.net/Articles/394916/" target="_blank">anunciou ontem</a> o lançamento da versão final do Python 2.7 e será a última versão principal da série 2.x, contudo será também um período extendido para correção de bugs.</p>
<p>Esta nova versão inclui muitos recursos que foram liberados primeiramente no Python 3.1.</p>
<p>Para ver com mais detalhes as alterações nesta versão acesse <a title="What's New In Python 2.7" href="http://docs.python.org/dev/whatsnew/2.7.html" target="_blank">aqui</a>.</p>
<p>É isso gente vim só avisar <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2010%252F07%252F06%252Flancado-python-2-7%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FarXa2v%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Lan%C3%A7ado%20Python%202.7%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/07/06/lancado-python-2-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alguns Exercícios em Python – Parte 2</title>
		<link>http://blog.krix.com.br/2010/03/31/alguns-exercicios-em-python-%e2%80%93-parte-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=alguns-exercicios-em-python-%25e2%2580%2593-parte-2</link>
		<comments>http://blog.krix.com.br/2010/03/31/alguns-exercicios-em-python-%e2%80%93-parte-2/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 12:29:54 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Exercícios]]></category>
		<category><![CDATA[Script Python]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2850</guid>
		<description><![CDATA[Oie pessoal, dando continuidade a sequência de exercícios, conforme expliquei no post de ontem, hoje irei colocar mais duas questões. Estou procurando colocar o script de forma mais auto-explicativa possível e comentando, mas qualquer dúvida que possa existir, pode perguntar, seja aqui nos comentários, na página contato ou por email, ok? Então vamos as questões: [...]]]></description>
			<content:encoded><![CDATA[
<p>Oie pessoal, dando continuidade a sequência de exercícios, conforme expliquei no <a href="http://blog.krix.com.br/2010/03/30/alguns-exercicios-em-python-parte-1/">post de ontem</a>, hoje irei colocar mais duas questões.</p>
<p>Estou procurando colocar o script de forma mais auto-explicativa possível e comentando, mas qualquer dúvida que possa existir, pode perguntar, seja aqui nos comentários, na página contato ou por email, ok?</p>
<p>Então vamos as questões:</p>
<p>Contruir um script que receba o código de N produtos e o classifique de acordo com a tabela abaixo:</p>
<table align="center">
<tbody>
<tr>
<td style="text-align: center;">Código</td>
<td style="text-align: center;">Classificação</td>
</tr>
<tr>
<td style="text-align: center;">1</td>
<td>Alimento não-perecível</td>
</tr>
<tr>
<td style="text-align: center;">2 a 4</td>
<td>Alimento perecível</td>
</tr>
<tr>
<td style="text-align: center;">5 e 6</td>
<td>Vestuario</td>
</tr>
<tr>
<td style="text-align: center;">7</td>
<td>Higiene Pessoal</td>
</tr>
<tr>
<td style="text-align: center;">8 a 15</td>
<td>Limpeza e utensilios domésticos</td>
</tr>
</tbody>
</table>
<p>A quantidade N de produtos deve ser fornecida ao programa.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 31 Mar 2010 08:36:03 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Wed 31 Mar 2010 09:23:55 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script que recebeo codigo de N produtos e o classifica de acordo com uma tabela.</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;"># Recebendo quantidade de produtos.</span>
		quantidade = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a quantidade de produtos: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Inicio do laco para perguntar as N vezes, onde N e a quantidade de produtos a consultar.</span>
		<span style="color: #ff7700;font-weight:bold;">while</span> quantidade <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
			<span style="color: #808080; font-style: italic;"># Recebendo codigo do produto.</span>
			codigo = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Informe o codigo do produto: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
			<span style="color: #808080; font-style: italic;"># Inicio da classificacao do produto por codigo.</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> codigo == <span style="color: #ff4500;">1</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Alimento nao-perecivel'</span>
			<span style="color: #ff7700;font-weight:bold;">elif</span> codigo <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">2</span> <span style="color: #ff7700;font-weight:bold;">and</span> codigo <span style="color: #66cc66;">&lt;</span>= <span style="color: #ff4500;">4</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Alimento perecivel'</span>
			<span style="color: #ff7700;font-weight:bold;">elif</span> codigo <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">5</span> <span style="color: #ff7700;font-weight:bold;">and</span> codigo <span style="color: #66cc66;">&lt;</span>= <span style="color: #ff4500;">6</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Vestuario'</span>
			<span style="color: #ff7700;font-weight:bold;">elif</span> codigo == <span style="color: #ff4500;">7</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Higiene Pessoal'</span>
			<span style="color: #ff7700;font-weight:bold;">elif</span> codigo <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">8</span> <span style="color: #ff7700;font-weight:bold;">and</span> codigo <span style="color: #66cc66;">&lt;</span>= <span style="color: #ff4500;">15</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Limpeza e utensilios domesticos'</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>Codigo Invalido'</span>
			<span style="color: #808080; font-style: italic;"># Subtraindo 1 da quantidade.</span>
			quantidade = quantidade - <span style="color: #ff4500;">1</span>
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Elabore um script para calcular a média ponderada de três notas de um aluno, sabendo que os respectivos pesos são 2, 3 e 5.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 30 Mar 2010 09:24:06 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Tue 30 Mar 2010 09:47:43 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script para calcular a media ponderada entre tres notas, onde os pesos sao: 2, 3 e 5.</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;">#  Recebendo as notas.</span>
		nota1 = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a nota 1: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		nota2 = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a nota 2: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		nota3 = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a nota 3: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Calculando a media ponderada.</span>
		media = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>nota1<span style="color: #66cc66;">*</span><span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>+<span style="color: black;">&#40;</span>nota2<span style="color: #66cc66;">*</span><span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span>+<span style="color: black;">&#40;</span>nota3<span style="color: #66cc66;">*</span><span style="color: #ff4500;">5</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>/<span style="color: black;">&#40;</span><span style="color: #ff4500;">2</span>+<span style="color: #ff4500;">3</span>+<span style="color: #ff4500;">5</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Exibindo o resultado.</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> media
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Bom gente amanhã coloco mais outras questões, ainda faltam 4.</p>
<p>Até amanhã <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2010%252F03%252F31%252Falguns-exercicios-em-python-%2525e2%252580%252593-parte-2%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fd3GPnO%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Alguns%20Exerc%C3%ADcios%20em%20Python%20%E2%80%93%20Parte%202%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/03/31/alguns-exercicios-em-python-%e2%80%93-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alguns Exercícios em Python &#8211; Parte 1</title>
		<link>http://blog.krix.com.br/2010/03/30/alguns-exercicios-em-python-parte-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=alguns-exercicios-em-python-parte-1</link>
		<comments>http://blog.krix.com.br/2010/03/30/alguns-exercicios-em-python-parte-1/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 14:24:08 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Exercícios]]></category>
		<category><![CDATA[Script Python]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2842</guid>
		<description><![CDATA[Oie gente, tudo bonzinho? Ontem uma amiga minha me pediu uma ajuda para fazer um exercício que o professor da cadeira de Introdução a Programação passou. Sabemos que no começo é complicado mesmo, mas com o passar do tempo a gente vê que a &#8216;coisa&#8217; é pior do que estávamos pensando e a tendência é [...]]]></description>
			<content:encoded><![CDATA[
<p>Oie gente, tudo bonzinho?</p>
<p>Ontem uma amiga minha me pediu uma ajuda para fazer um exercício que o professor da cadeira de Introdução a Programação passou.</p>
<p>Sabemos que no começo é complicado mesmo, mas com o passar do tempo a gente vê que a &#8216;coisa&#8217; é pior do que estávamos pensando e a tendência é ficar complicado SEMPRE, rsrs <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>As questões do exercício eram para ser escritos em algoritmo PORTUGOL, maaaaaaas eu &#8216;intrometida&#8217; resolvi fazer em Python também, contudo fiz isso para que minha amiga começasse a se familiarizar com uma linguagem e acho que Python seria uma ótima opção.</p>
<p>Como são 10 questões irei fazer o seguinte, colocarei 4 hoje e vou colocando as outras aos poucos, ok?</p>
<p>Outra coisa, opiniões seram sem sempre bem vindas. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Então vamos as questões:</p>
<p>Escrever um script que leia um número inteiro e imprima o seu sucessor e seu antecessor:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 30 Mar 2010 08:58:19 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Tue 30 Mar 2010 09:24:27 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script para retornar o antecessor e o sucessor do numero informamdo.</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;"># Recebendo os numeros.</span>
		numero = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe um numero: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># 'Calculando' antecessor e sucessor do numero.</span>
		antecessor = <span style="color: black;">&#40;</span>numero - <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		sucessor = <span style="color: black;">&#40;</span>numero + <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Exibindo o resultado.</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Antecessor: %s <span style="color: #000099; font-weight: bold;">\n</span>Sucessor: %s'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>antecessor, sucessor<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Escrever um script que leia dois números inteiros e imprima o resultado da soma destes dois valores. Antes do resultado, deve ser impressa a seguinte mensagem &#8220;SOMA&#8221;</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 30 Mar 2010 08:58:19 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Tue 30 Mar 2010 10:18:30 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script para somar dois numeros.</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;"># Recebendo os numeros.</span>
		numero1 = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe o primeiro numero: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		numero2 = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe o segundo numero: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Soma os numeros. </span>
		soma = <span style="color: black;">&#40;</span>numero1 + numero2<span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Exibe o resultado.</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'SOMA %d'</span> <span style="color: #66cc66;">%</span> soma
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Escreva um script que calcule a área de um terreno a paritr da leitura das dimensões do mesmo. Ao final escreva a área total e as dimensões.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 30 Mar 2010 08:58:19 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Tue 30 Mar 2010 11:21:28 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script para calcular a area de um terreno.</span>
&nbsp;
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;"># Recebendo as dimenssoes.</span>
		base = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a base: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		altura = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe a altura: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Soma os numeros. </span>
		area = <span style="color: black;">&#40;</span>base <span style="color: #66cc66;">*</span> altura<span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Exibe o resultado.</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'
Base: %s
Altura: %s
Area do terreno: %s
		'</span><span style="color: #483d8b;">''</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>base, altura, area<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Escreva um script que leia dois números e efetue a adição. Caso o valor somando seja maior que 20, este deverá ser apresentado somando a ele mais 8; caso o valor somado seja menor ou igual a 20, este deverá ser apresentado subtraindo 5.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
<span style="color: #808080; font-style: italic;"># Created: Tue 30 Mar 2010 08:58:19 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Last Change: Tue 30 Mar 2010 09:34:08 AM BRT</span>
<span style="color: #808080; font-style: italic;"># Description: Script para somar dois numeros e se o resultador for maior que 20 acrescentar 8 senao subtrair 5.</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>: 
	<span style="color: #ff7700;font-weight:bold;">try</span>:
		<span style="color: #808080; font-style: italic;"># Recebendo os numeros.</span>
		numero1 = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe o primeiro numero: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		numero2 = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span><span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Informe o segundo numero: '</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Soma os numeros. </span>
		soma = <span style="color: black;">&#40;</span>numero1 + numero2<span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Verificando valor da soma.</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> soma <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">20</span>:
			soma = <span style="color: black;">&#40;</span>soma + <span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">else</span>:
			soma = <span style="color: black;">&#40;</span>soma - <span style="color: #ff4500;">5</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;"># Exibe o resultado.</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'%d'</span> <span style="color: #66cc66;">%</span> soma
	<span style="color: #ff7700;font-weight:bold;">except</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... Favor verificar se os dados informados estao corretos.'</span></pre></div></div>

<p>Bom gente, amanhã faço um post com mais algumas questões. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2010%252F03%252F30%252Falguns-exercicios-em-python-parte-1%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FcBTz1Y%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Alguns%20Exerc%C3%ADcios%20em%20Python%20-%20Parte%201%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/03/30/alguns-exercicios-em-python-parte-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DreamPie &#8211; Novo Shell Para Python</title>
		<link>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dreampie-novo-shell-para-python</link>
		<comments>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:58:32 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[DreamPie]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2742</guid>
		<description><![CDATA[O DreamPie vem com um novo conceito para um shell interativo, onde a janela é dividida em caixa de histórico, que permite visualizar comandos anteriores e sua saída, e a caixa de código, onde você escreve seu código. Você também pode copiar o código de qualquer lugar, editá-lo e executá-lo imediatamente. Abaixo listei algumas das [...]]]></description>
			<content:encoded><![CDATA[
<p>O <a title="DreamPie" href="http://dreampie.sourceforge.net/index.html" target="_blank">DreamPie</a> vem com um novo conceito para um shell interativo, onde a janela é dividida em caixa de histórico, que permite visualizar comandos anteriores e sua saída, e a caixa de código, onde você escreve seu código. Você também pode copiar o código de qualquer lugar, editá-lo e executá-lo imediatamente.</p>
<p>Abaixo listei algumas das características dele:</p>
<ul>
<li>O código fica formatado com um recuo de quatro espaços.</li>
</ul>
<ul>
<li>Preenchimento automático de atributos e de arquivo.</li>
</ul>
<ul>
<li>Permite-lhe guardar o histórico da sessão como um arquivo HTML. O arquivo pode ser carregado no <em>DreamPie</em> e rapidamente refazer os comandos anteriores.</li>
</ul>
<ul>
<li>Suporta interativo com <a href="http://matplotlib.sourceforge.net/" target="_blank">matplotlib</a>.</li>
</ul>
<ul>
<li>Suporta Python 2.5, Python 2.6, Jython 2,5, 2,6 IronPython e Python 3.1. Funciona em Windows, Mac e Linux.</li>
</ul>
<ul>
<li>Extremamente rápido e responsivo.</li>
</ul>
<ul>
<li>Licenciado sob a GPL versão 3.</li>
</ul>
<p>Para conhecer melhor acesse o <a title="DreamPie" href="http://dreampie.sourceforge.net/index.html" target="_blank">site</a>.</p>
<p>PS: Ainda não parei para futucar, só instalei e dei uma leve &#8220;olhada&#8221;, mas o pouco que eu mexi gostei <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2010%252F02%252F23%252Fdreampie-novo-shell-para-python%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2Fd9Mh7U%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22DreamPie%20-%20Novo%20Shell%20Para%20Python%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/02/23/dreampie-novo-shell-para-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Para Desenvolvedores &#8211; Segunda Edição</title>
		<link>http://blog.krix.com.br/2010/01/19/python-para-desenvolvedores-segunda-edicao/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=python-para-desenvolvedores-segunda-edicao</link>
		<comments>http://blog.krix.com.br/2010/01/19/python-para-desenvolvedores-segunda-edicao/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 17:08:02 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Livros]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2606</guid>
		<description><![CDATA[Em maio do ano passado postei aqui no blog sobre o lançamento do livro Python Para Desenvolverores de autoria de Luiz Eduardo Borges e hoje eu venho dizer que ele lançou a segunda edição do livro que vem nessa nova edição com 107 páginas a mais, totalizando 360. Li boa parte da primeira edição infelizmente [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://revista.espiritolivre.org/pdf/Revista_EspiritoLivre_009_dezembro09.pdf"><img src="http://blog.krix.com.br/wp-content/uploads/imagens_posts/capas/python_para_desenvolvedores_2.jpg" alt="" width="175" height="234" align="left" /></a><br />
Em maio do ano passado <a title="Python Para Desenvolvedores" href="http://blog.krix.com.br/2009/05/27/python-para-desenvolvedores/">postei</a> aqui no blog sobre o lançamento do livro <a title="Python Para Desenvolverores" href="http://ark4n.wordpress.com/python/" target="_blank">Python Para Desenvolverores</a> de autoria de <span style="color: #3366ff;"><em>Luiz Eduardo Borges</em></span> e hoje eu venho dizer que ele lançou a segunda edição do livro que vem nessa nova edição com 107 páginas a mais, totalizando 360.</p>
<p>Li boa parte da primeira edição infelizmente parei por falta de tempo, mas a leitura desse livro vale a pena.</p>
<p>Novamente parabenizo o Luiz pelo livro e que ele e desejo que ele tenha o merecido reconhecimento. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Para fazer o download do livre acesse <a title="Download Python Para Desenvolvedores 2" href="http://ark4n.files.wordpress.com/2010/01/python_para_desenvolvedores_2ed.pdf" target="_blank">aqui</a>.<br />
<BR/><BR/></p>
<blockquote><p><span style="color: #800080;">&#8220;Já está disponível para download a segunda edição do livro Python para Desenvolvedores. A primeira edição foi uma iniciativa inédita, sendo o primeiro livro livre em português sobre a linguagem de programação. A publicação é distribuída sob uma licença Creative Commons, que ajuda garantir o direito autoral, ao mesmo tempo que permite copiar, distribuir, exibir e criar obras derivadas, democratizando o acesso ao conhecimento.Com mais de cem páginas a mais que a anterior, a nova edição traz vários assuntos inéditos e uma extensa revisão do conteúdo. Voltado para desenvolvedores que já tem conhecimento de programação, as 360 páginas do livro explicam de forma simples e objetiva, as tecnologias envolvendo a linguagem utilizadas em projetos. Os capítulos abordam entre outros tópicos, interfaces gráficas, aplicações para Internet e sistemas distribuídos.</span></p>
<p><span style="color: #800080;">Luiz Eduardo Borges, analista de sistemas com pós-graduação em Ciência da Computação pela Universidade do Estado do Rio de Janeiro, buscou a criação de um material abrangente, capaz de fornecer ao leitor explicações e exemplos práticos da maior parte do ferramental disponível na linguagem para o desenvolvimento de soluções de problemas comuns e alguns bastante incomuns de computação.&#8221;</span></p>
<p style="text-align: right;"><span style="color: #800080;"><a href="http://br-linux.org/2010/segunda-edicao-do-livro-python-para-desenvolvedores/" target="_blank">FONTE</a><br />
</span></p>
</blockquote>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2010%252F01%252F19%252Fpython-para-desenvolvedores-segunda-edicao%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Python%20Para%20Desenvolvedores%20-%20Segunda%20Edi%C3%A7%C3%A3o%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2010/01/19/python-para-desenvolvedores-segunda-edicao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curso de Python</title>
		<link>http://blog.krix.com.br/2009/12/05/curso-de-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=curso-de-python</link>
		<comments>http://blog.krix.com.br/2009/12/05/curso-de-python/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 23:25:16 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Cursos]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2484</guid>
		<description><![CDATA[Oie gente, tudo bonzinho? Desde setembro o Magnun iniciou em seu blog um curso de Python, tenho acompanhado o curso e a linguagem usada por ele é bem simples o que é ótimo principalmente para aqueles que estão iniciando. Acesse o link do curso e aproveitem]]></description>
			<content:encoded><![CDATA[
<p>Oie gente, tudo bonzinho? <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Desde <a title="[Curso de Python] O que é Python" href="http://under-linux.org/b1300-curso-de-python-o-que-e-python" target="_blank">setembro</a> o <a title="Blog do Magnun" href="http://under-linux.org/blogs/magnun/" target="_blank">Magnun</a> iniciou em seu blog um curso de Python, tenho acompanhado o curso e a linguagem usada por ele é bem simples o que é ótimo principalmente para aqueles que estão iniciando.</p>
<p>Acesse o <a title="Curso de Python Por Magnun" href="http://under-linux.org/blogs/magnun/curso-de-python.html" target="_blank">link do curso</a> e aproveitem <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2009%252F12%252F05%252Fcurso-de-python%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Curso%20de%20Python%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/12/05/curso-de-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Arquivos &amp; Python</title>
		<link>http://blog.krix.com.br/2009/09/17/arquivos-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=arquivos-python</link>
		<comments>http://blog.krix.com.br/2009/09/17/arquivos-python/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 10:03:39 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Arquivos]]></category>
		<category><![CDATA[Módulo]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2080</guid>
		<description><![CDATA[Algo que venho constantemente usando em meus scripts Python é a manipulação de arquivos, seja criando ou acrescendo textos. Para isso vou usar um exemplo para começar a explicar: Text = ''' 192.168.2.32 192.168.2.63 192.168.2.86 192.168.2.90 ''' &#160; MyFile = open&#40;'/home/krix/list_ips.txt', 'w'&#41; MyFile.write&#40;Text&#41; MyFile.close&#40;&#41; O código acima cria o arquivo (ou se ele já existe [...]]]></description>
			<content:encoded><![CDATA[
<p>Algo que venho constantemente usando em meus scripts Python é a manipulação de arquivos, seja criando ou acrescendo textos. Para isso vou usar um exemplo para começar a explicar:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">Text = <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'
192.168.2.32
192.168.2.63
192.168.2.86
192.168.2.90
'</span><span style="color: #483d8b;">''</span>
&nbsp;
MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>O código acima cria o arquivo (ou se ele já existe o sobescreve) <em>/home/krix/list_ips.txt</em> inserindo o texto declarado na variável <em>Text</em> e em seguida o fecha. Parece bem simples não é?! E é. A manipulação de arquivos com Python é realmente bem simples.</p>
<p>A sintaxe da função <em>open()</em> é:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #008000;">open</span><span style="color: black;">&#40;</span>arquivo<span style="color: black;">&#91;</span>, modo<span style="color: black;">&#91;</span>, tamanho do buffer<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>O primeiro parâmetro <em>arquivo</em> é obrigatório e como se pode ver é o nome e/ou caminho do arquivo a ser aberto;</p>
<p>O segundo parâmetro <em>modo</em>, que não é obrigatório, será uma string que indicará o modo como o arquivo será aberto. São eles:</p>
<ul>
<li><em>r</em> (<em>read</em>): O arquivo é aberto somente para leitura. Quando não informado o modo este será o padrão.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
ReadingFile = MyFile.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> ReadingFile</pre></div></div>

<ul>
<li><em>w</em> (<em>write</em>): O arquivo é aberto somente para escrita e será bloqueado caso exista subescrevendo seu conteúdo e criado se não existir.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'w'</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>a</em> (<em>append</em>): O arquivo é aberto somente para escrita contudo ao contrário do <em>w</em> que subescreve o conteúdo do arquivo ele irá acrescentar ao arquivo.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'a'</span><span style="color: black;">&#41;</span>
NewIPs = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
NewIPs.<span style="color: black;">append</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">' '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>NewIPs<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Todos os modos acima citados quando seguido do caracter <em>mais</em> (+) o arquivo será aberto tanto para leitura quanto para escrita.</p>
<p>Quando os modos r, w ou a estiver seguido do caracter b ou t isso indicará a forma de manupulação do arquivos, o b indicará que será binário e o t em texto e quando não informado o t será o padrão.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'w+'</span><span style="color: black;">&#41;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'wb'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>O terceiro parâmetro <em>tamanho do buffer</em>, também não obrigatório, e controla o comportamento do buffer do arquivo. Se 0 não será bufferizado, se 1 será bufferizado e se for um número positivo maior que 1 indicará o tamanho do buffer em bytes.</p>
<p>Acima usamos alguns métodos como o read, write e close mas não falamos nada sobre eles então abaixo irei dá uma definição a eles e a alguns outros métodos que julguei indispensáveis:</p>
<ul>
<li><em>read()</em>: Lê o arquivo.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>readline(size)</em>: Lê uma só linha do arquivo. Size será a quantidade de caracteres que será lido na linha.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: #dc143c;">readline</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>readlines(size)</em>: Lê todas as linhas do arquivo e retorna numa lista. Size será o número de bytes a ser lido.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: black;">readlines</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>write(str)</em>: Escreve a string passada no arquivo.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>writelines()</em>: Escreve no arquivo todas as strings de uma lista.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: black;">writelines</span><span style="color: black;">&#40;</span><span style="color: #008000;">list</span><span style="color: black;">&#41;</span></pre></div></div>

<p>O que seria o mesmo que:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">list</span>:
    MyFile.<span style="color: black;">writelines</span><span style="color: black;">&#40;</span>line<span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li><em>close()</em>: Fecha o arquivo.</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>No exemplo que dei mais acima quando falei sobre o <em>modo a</em> você percebeu que usei dois métodos que os quais ainda não tinha comentado, o <em>join</em> e o <em>append</em>. O <em>join</em> tem a função de concatenar uma string a outra o que seria justamente o que eu precisaria no código. O <em>append</em> adiciona um ítem ao final de uma lista. Dadas as definições vamos explicar: Se eu tivesse ignorado o append e usasse somente o join para adicionar o Text ao arquivo será que funcionaria sem problemas? Sim, mas sem problemas?!?! Humm, isso já seria relativo, se eu retirasse e dexasse o código assim:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'a'</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">' '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>O arquivo ficaria assim:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">1</span> <span style="color: #000000;">9</span> <span style="color: #000000;">2</span> . <span style="color: #000000;">1</span> <span style="color: #000000;">6</span> <span style="color: #000000;">8</span> . <span style="color: #000000;">2</span> . <span style="color: #000000;">3</span> <span style="color: #000000;">2</span>
<span style="color: #000000;">1</span> <span style="color: #000000;">9</span> <span style="color: #000000;">2</span> . <span style="color: #000000;">1</span> <span style="color: #000000;">6</span> <span style="color: #000000;">8</span> . <span style="color: #000000;">2</span> . <span style="color: #000000;">6</span> <span style="color: #000000;">3</span>
<span style="color: #000000;">1</span> <span style="color: #000000;">9</span> <span style="color: #000000;">2</span> . <span style="color: #000000;">1</span> <span style="color: #000000;">6</span> <span style="color: #000000;">8</span> . <span style="color: #000000;">2</span> . <span style="color: #000000;">8</span> <span style="color: #000000;">6</span>
<span style="color: #000000;">1</span> <span style="color: #000000;">9</span> <span style="color: #000000;">2</span> . <span style="color: #000000;">1</span> <span style="color: #000000;">6</span> <span style="color: #000000;">8</span> . <span style="color: #000000;">2</span> . <span style="color: #000000;">9</span> <span style="color: #000000;">0</span></pre></div></div>

<p>Mas deixando como o exemplo inicial o arquivo ficaria assim:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">192.168.2.32
192.168.2.63
192.168.2.86
192.168.2.90</pre></div></div>

<p>Fico por aqui com o post, acho que já falei demais <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 435px; width: 1px; height: 1px;">
<ul>
<li>- <em>a</em> para anexar (<em>append</em>);</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">MyFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/krix/list_ips.txt'</span>, <span style="color: #483d8b;">'a'</span><span style="color: black;">&#41;</span>
NewIPs = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
NewIPs.<span style="color: black;">append</span><span style="color: black;">&#40;</span>Text<span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>NewIPs<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: black;">&#41;</span>
MyFile.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

</div>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2009%252F09%252F17%252Farquivos-python%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Arquivos%20%26%20Python%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/09/17/arquivos-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto Completar no Interpretador Python</title>
		<link>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=auto-completar-no-interpretador-python</link>
		<comments>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 09:32:43 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2230</guid>
		<description><![CDATA[Faz um tempinho que não escrevo nenhum post mas juro que não é má vontade, é que estou resolvendo umas bronquinhas mas prometo que vou procurar ficar mais presente. Essa semana estava procurando sobre um determinado assunto e acabei encontrando uma dica passada pelo Petry em seu blog (que por sinal eu não conhecia), onde [...]]]></description>
			<content:encoded><![CDATA[
<p>Faz um tempinho que não escrevo nenhum post mas juro que não é má vontade, é que estou resolvendo umas bronquinhas mas prometo que vou procurar ficar mais presente. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Essa semana estava procurando sobre um determinado assunto e acabei encontrando uma dica passada pelo <a title="Blog do Petry" href="http://blog.mdpetry.net/" target="_blank">Petry</a> em seu blog (que por sinal eu não conhecia), onde fala sobre o uso do TAB para auto completar as funções no interpretador Python, algo que é muito útil.</p>
<p>Para que fique por padrão em seu interpretador Python crie o arquivo $HOME/.pythonrc e insira o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">readline</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">rlcompleter</span>
<span style="color: #dc143c;">readline</span>.<span style="color: black;">parse_and_bind</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'tab: complete'</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Você também pode rodar esse código diretamento no interpretador Python mas fazendo isso, sempre que acessar terá que refazer e criando o arquivo não será necerrário. Contudo não podemos esquecer de declarar a variável indicando o local do <em>.pythonrc</em> no <em>.bashrc</em>, então adicione as linhas abaixo no $HOME/.bashrc :</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">PYTHONSTARTUP=<span style="color: #483d8b;">&quot;$HOME/.pythonrc&quot;</span>
export PYTHONSTARTUP</pre></div></div>

<p>Após isso basta restartar o <em>shell</em> e rodar o interpretador Python:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: black;">&#91;</span>krix@rogue<span style="color: black;">&#93;</span>$ source /home/krix/.<span style="color: black;">bashrc</span>
<span style="color: black;">&#91;</span>krix@rogue<span style="color: black;">&#93;</span>$ python
Python 2.6.2 <span style="color: black;">&#40;</span>release26-maint, Apr <span style="color: #ff4500;">19</span> <span style="color: #ff4500;">2009</span>, 01:<span style="color: #ff4500;">56</span>:<span style="color: #ff4500;">41</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#91;</span>GCC 4.3.3<span style="color: black;">&#93;</span> on linux2
Type <span style="color: #483d8b;">&quot;help&quot;</span>, <span style="color: #483d8b;">&quot;copyright&quot;</span>, <span style="color: #483d8b;">&quot;credits&quot;</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: #483d8b;">&quot;license&quot;</span> <span style="color: #ff7700;font-weight:bold;">for</span> more information.
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #008000;">str</span>. <span style="color: black;">&#91;</span>TAB+TAB<span style="color: black;">&#93;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__add__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__subclasses__<span style="color: black;">&#40;</span>               <span style="color: #008000;">str</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__base__<span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__instancecheck__<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.__subclasshook__<span style="color: black;">&#40;</span>             <span style="color: #008000;">str</span>.<span style="color: black;">ljust</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__bases__                     <span style="color: #008000;">str</span>.__itemsize__                  <span style="color: #008000;">str</span>.__weakrefoffset__             <span style="color: #008000;">str</span>.<span style="color: black;">lower</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__basicsize__                 <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__le__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>._formatter_field_name_split<span style="color: black;">&#40;</span>  <span style="color: #008000;">str</span>.<span style="color: black;">lstrip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__len__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>._formatter_parser<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.<span style="color: black;">mro</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__class__<span style="color: black;">&#40;</span>                    <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__lt__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">capitalize</span><span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">partition</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__cmp__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__mod__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">center</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__contains__</span><span style="color: black;">&#40;</span>                 <span style="color: #008000;">str</span>.__module__                    <span style="color: #008000;">str</span>.<span style="color: black;">count</span><span style="color: black;">&#40;</span>                        <span style="color: #008000;">str</span>.<span style="color: black;">rfind</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__delattr__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.__mro__                       <span style="color: #008000;">str</span>.<span style="color: black;">decode</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">rindex</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__dict__</span>                      <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__mul__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">encode</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">rjust</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__dictoffset__                <span style="color: #008000;">str</span>.__name__                      <span style="color: #008000;">str</span>.<span style="color: black;">endswith</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">rpartition</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__doc__                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__ne__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">expandtabs</span><span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">rsplit</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__eq__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__new__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span>                         <span style="color: #008000;">str</span>.<span style="color: black;">rstrip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__flags__                     <span style="color: #008000;">str</span>.__reduce__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">format</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__format__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.__reduce_ex__<span style="color: black;">&#40;</span>                <span style="color: #008000;">str</span>.<span style="color: black;">index</span><span style="color: black;">&#40;</span>                        <span style="color: #008000;">str</span>.<span style="color: black;">splitlines</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__ge__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__repr__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isalnum</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">startswith</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getattribute__</span><span style="color: black;">&#40;</span>             <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__rmod__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isalpha</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getitem__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__rmul__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.<span style="color: black;">isdigit</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">swapcase</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.__getnewargs__<span style="color: black;">&#40;</span>               <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__setattr__</span><span style="color: black;">&#40;</span>                  <span style="color: #008000;">str</span>.<span style="color: black;">islower</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">title</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__getslice__</span><span style="color: black;">&#40;</span>                 <span style="color: #008000;">str</span>.__sizeof__<span style="color: black;">&#40;</span>                   <span style="color: #008000;">str</span>.<span style="color: black;">isspace</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__gt__</span><span style="color: black;">&#40;</span>                       <span style="color: #008000;">str</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">istitle</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">upper</span><span style="color: black;">&#40;</span>
<span style="color: #008000;">str</span>.<span style="color: #0000cd;">__hash__</span><span style="color: black;">&#40;</span>                     <span style="color: #008000;">str</span>.__subclasscheck__<span style="color: black;">&#40;</span>            <span style="color: #008000;">str</span>.<span style="color: black;">isupper</span><span style="color: black;">&#40;</span>                      <span style="color: #008000;">str</span>.<span style="color: black;">zfill</span><span style="color: black;">&#40;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #008000;">str</span>.</pre></div></div>

<p>Muito bom não é?! Mas antes de dá esse post como finalizado acho importante falar um pouco sobre os módulos que usamos para que isso ocorresse:</p>
<ul>
<li><em>readline</em>: Este módulo permite a edição de linha de comando usando o GNU readline. O módulo readline define algumas funções para facilitar a leitura e escrita de arquivos de histórico do interpretador Python. Este módulo pode ser usado diretamente ou através do módulo rlcompleter, como fizemos aqui. Deste módulo fizemos uso de uma de suas funções a <em>parse_and_bind(string)</em> que, analisar e executar uma única linha de um arquivo.</li>
<li><em>rlcompleter</em>:  Este módulo define uma função de conclusão adequada para o módulo <em>readline</em> completando identificadores válidos Python e palavras-chave.</li>
</ul>
<p>Agora porque o nome da variável adicionada no <em>.bashrc</em> foi <em>PYTHONSTARTUP</em> e não qualquer outra? Esta é uma variável de ambiente que influencia no comportamento da linguagem onde, o arquivo nela declarado é executado no mesmo espaço interactivo, onde os comandos são executados durante a sessão interativa (no caso o interpretador Python).</p>
<p>Você pode obter mais informações sobre esse e outros módulos e funções <a title="Python Documentation" href="http://docs.python.org/index.html" target="_blank">aqui</a>. <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 397px; width: 1px; height: 1px;"><span style="font-size: small;"><span style="color: #000000;">este módulo permite a edição de linha de comando usando o GNU readline.</span></span></div>
<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2009%252F09%252F15%252Fauto-completar-no-interpretador-python%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Auto%20Completar%20no%20Interpretador%20Python%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/09/15/auto-completar-no-interpretador-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Procurando String em Arquivo com Python</title>
		<link>http://blog.krix.com.br/2009/08/01/buscando-uma-palavra-em-um-arquivo-usando-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=buscando-uma-palavra-em-um-arquivo-usando-python</link>
		<comments>http://blog.krix.com.br/2009/08/01/buscando-uma-palavra-em-um-arquivo-usando-python/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 10:02:53 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Busca]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=2082</guid>
		<description><![CDATA[Por esses dias fiz um módulo em Python para buscar uma palavra em algum determinado arquivo, pois achei mais viável para o que estava fazendo, então decidi compartilhar com vocês, e para isso fiz também um script, irei mostrar os dois aqui . Opniões serão bem vinda, óbvio . Script SearchString.py 1 #!/usr/bin/env python 2 [...]]]></description>
			<content:encoded><![CDATA[
<p>Por esses dias fiz um módulo em Python para buscar uma palavra em algum determinado arquivo, pois achei mais viável para o que estava fazendo, então decidi compartilhar com vocês, e para isso fiz também um script, irei mostrar os dois aqui <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Opniões serão bem vinda, óbvio <img src='http://blog.krix.com.br/krix/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<ul>
<li>Script SearchString.py</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">  <span style="color: #ff4500;">1</span> <span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
  <span style="color: #ff4500;">2</span>
  <span style="color: #ff4500;">3</span> <span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
  <span style="color: #ff4500;">4</span>
  <span style="color: #ff4500;">5</span> <span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">re</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #008000;">compile</span>
  <span style="color: #ff4500;">6</span> <span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">sys</span> <span style="color: #ff7700;font-weight:bold;">import</span> argv, exit
  <span style="color: #ff4500;">7</span>
  <span style="color: #ff4500;">8</span> <span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
  <span style="color: #ff4500;">9</span> ····<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>argv<span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">3</span>:
 <span style="color: #ff4500;">10</span> ········<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Usage: %s &lt;termo&gt; &lt;arquivo&gt;'</span> <span style="color: #66cc66;">%</span> argv<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
 <span style="color: #ff4500;">11</span> ········exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">12</span>
 <span style="color: #ff4500;">13</span> ····String = argv<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
 <span style="color: #ff4500;">14</span> ····File = argv<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
 <span style="color: #ff4500;">15</span>
 <span style="color: #ff4500;">16</span> ····<span style="color: #ff7700;font-weight:bold;">try</span>:
 <span style="color: #ff4500;">17</span> ········FileSearch = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>File, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">18</span> ········ReadingFile = FileSearch.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">19</span> ········ReadingFile = ReadingFile.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">20</span> ········StringSearching = <span style="color: #008000;">compile</span><span style="color: black;">&#40;</span>String<span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">21</span> ········<span style="color: #ff7700;font-weight:bold;">for</span> Line <span style="color: #ff7700;font-weight:bold;">in</span> ReadingFile:
 <span style="color: #ff4500;">22</span> ············FoundString = StringSearching.<span style="color: black;">search</span><span style="color: black;">&#40;</span>Line<span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">23</span> ············<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>FoundString<span style="color: black;">&#41;</span>:
 <span style="color: #ff4500;">24</span> ················<span style="color: #ff7700;font-weight:bold;">print</span> Line
 <span style="color: #ff4500;">25</span> ········FileSearch.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">26</span> ········exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">27</span> ····<span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">IOError</span>:
 <span style="color: #ff4500;">28</span> ········<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Oooops... Falhou...'</span>
 <span style="color: #ff4500;">29</span> ········exit<span style="color: black;">&#40;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span></pre></div></div>

<ul>
<li>Módulo searchstring.py</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">  <span style="color: #ff4500;">1</span> <span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
  <span style="color: #ff4500;">2</span>
  <span style="color: #ff4500;">3</span> <span style="color: #808080; font-style: italic;"># Krix Apolinario - krix@krix.com.br</span>
  <span style="color: #ff4500;">4</span>
<span style="color: #ff4500;">5</span> <span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">re</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #008000;">compile</span>
 <span style="color: #ff4500;">6</span> <span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">sys</span> <span style="color: #ff7700;font-weight:bold;">import</span> argv, exit
 <span style="color: #ff4500;">7</span>
 <span style="color: #ff4500;">8</span> <span style="color: #ff7700;font-weight:bold;">def</span> searchstring<span style="color: black;">&#40;</span>String, File<span style="color: black;">&#41;</span>:
 <span style="color: #ff4500;">9</span> ····FileSearch = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>File, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">10</span> ····ReadingFile = FileSearch.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">11</span> ····ReadingFile = ReadingFile.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">12</span> ····StringSearching = <span style="color: #008000;">compile</span><span style="color: black;">&#40;</span>String<span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">13</span> ····<span style="color: #ff7700;font-weight:bold;">for</span> Line <span style="color: #ff7700;font-weight:bold;">in</span> ReadingFile:
 <span style="color: #ff4500;">14</span> ········FoundString = StringSearching.<span style="color: black;">search</span><span style="color: black;">&#40;</span>Line<span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">15</span> ········<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#40;</span>FoundString<span style="color: black;">&#41;</span>:
 <span style="color: #ff4500;">16</span> ············<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
 <span style="color: #ff4500;">17</span> ····FileSearch.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
 <span style="color: #ff4500;">18</span> ····<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span></pre></div></div>

<p>Abaixo coloquei um exemplo do uso do script e como usei o módulo re (Regular Expression) posso fazer buscas mais precisas. O arquivo que escolhi para mostrar os exemplos foi o script do post <a title="Enviando Email em Python" href="http://blog.krix.com.br/2009/07/11/enviando-email-em-python/" target="_blank">Enviando Email em Python</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>krix<span style="color: #000000; font-weight: bold;">@</span>sorcerss<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ .<span style="color: #000000; font-weight: bold;">/</span>SearchString.py sender sendmail.py
    sender        = <span style="color: #ff0000;">'relatorio@krix.com.br'</span>
    <span style="color: #ff0000;">''</span><span style="color: #ff0000;">' % (sender, recipient)
    server.sendmail(sender, recipient, message)</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>krix<span style="color: #000000; font-weight: bold;">@</span>sorcerss<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ .<span style="color: #000000; font-weight: bold;">/</span>SearchString.py <span style="color: #ff0000;">&quot; sender&quot;</span> sendmail.py
    sender        = <span style="color: #ff0000;">'relatorio@krix.com.br'</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>krix<span style="color: #000000; font-weight: bold;">@</span>sorcerss<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ .<span style="color: #000000; font-weight: bold;">/</span>SearchString.py <span style="color: #ff0000;">&quot;\(sender&quot;</span> sendmail.py
    <span style="color: #ff0000;">''</span><span style="color: #ff0000;">' % (sender, recipient)
    server.sendmail(sender, recipient, message)</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>krix<span style="color: #000000; font-weight: bold;">@</span>sorcerss<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ .<span style="color: #000000; font-weight: bold;">/</span>SearchString.py <span style="color: #ff0000;">&quot;^# &quot;</span> sendmail.py
<span style="color: #666666; font-style: italic;"># -*- coding: iso-8859-1 -*-</span>
<span style="color: #666666; font-style: italic;"># Krix Apolinário - krix@krix.com.br</span></pre></div></div>

<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2009%252F08%252F01%252Fbuscando-uma-palavra-em-um-arquivo-usando-python%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Procurando%20String%20em%20Arquivo%20com%20Python%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/08/01/buscando-uma-palavra-em-um-arquivo-usando-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enviando Email em Python</title>
		<link>http://blog.krix.com.br/2009/07/11/enviando-email-em-python/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=enviando-email-em-python</link>
		<comments>http://blog.krix.com.br/2009/07/11/enviando-email-em-python/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 10:23:38 +0000</pubDate>
		<dc:creator>Krix Apolinário</dc:creator>
				<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[Modulos]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Módulo]]></category>
		<category><![CDATA[smtplib]]></category>

		<guid isPermaLink="false">http://blog.krix.com.br/?p=1988</guid>
		<description><![CDATA[Python tem um módulo smtplib que permite o envio de emails tradicionais através do protocolo SMTP. Antes de falar sobre o módulo vamos dá uma olhada no código abaixo: 1 #!/usr/bin/env python 2 # -*- coding: iso-8859-1 -*- 3 4 # Krix Apolinário - krix@krix.com.br 5 6 import smtplib 7 8 def MySendMail&#40;&#41;: 9 server        [...]]]></description>
			<content:encoded><![CDATA[
<p>Python tem um módulo <a title="Módulo smtplib" href="http://docs.python.org/library/smtplib.html" target="_blank">smtplib</a> que permite o envio de emails tradicionais através do protocolo <a title="Simple Mail Transfer Protocol" href="http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol" target="_blank">SMTP</a>. Antes de falar sobre o módulo vamos dá uma olhada no código abaixo:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"> <span style="color: #ff4500;">1</span>  <span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
 <span style="color: #ff4500;">2</span>  <span style="color: #808080; font-style: italic;"># -*- coding: iso-8859-1 -*-</span>
 <span style="color: #ff4500;">3</span>
 <span style="color: #ff4500;">4</span>  <span style="color: #808080; font-style: italic;"># Krix Apolinário - krix@krix.com.br</span>
 <span style="color: #ff4500;">5</span>
 <span style="color: #ff4500;">6</span>  <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">smtplib</span>
 <span style="color: #ff4500;">7</span>
 <span style="color: #ff4500;">8</span>  <span style="color: #ff7700;font-weight:bold;">def</span> MySendMail<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
 <span style="color: #ff4500;">9</span>      server        = <span style="color: #dc143c;">smtplib</span>.<span style="color: black;">SMTP</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'smtp.krix.com.br'</span>, <span style="color: #ff4500;">25</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">10</span>      sender        = <span style="color: #483d8b;">'relatorio@krix.com.br'</span>
<span style="color: #ff4500;">11</span>      recipient     = <span style="color: #483d8b;">'krix@krix.com.br'</span>
<span style="color: #ff4500;">12</span>      message       = <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'
13      From: %s
14      To: %s
15      Subject: Email de teste
16      Corpo do email
17      '</span><span style="color: #483d8b;">''</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>sender, recipient<span style="color: black;">&#41;</span>
<span style="color: #ff4500;">18</span>      server.<span style="color: black;">sendmail</span><span style="color: black;">&#40;</span>sender, recipient, message<span style="color: black;">&#41;</span>
<span style="color: #ff4500;">19</span>      server.<span style="color: black;">quit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">20</span>
<span style="color: #ff4500;">21</span>  <span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
<span style="color: #ff4500;">22</span>     <span style="color: #ff7700;font-weight:bold;">try</span>:
<span style="color: #ff4500;">23</span>         MySendMail<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">24</span>     <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">IOError</span>:
<span style="color: #ff4500;">25</span>         <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Ooops... O email não foi enviado...'</span></pre></div></div>

<p>A classe SMTP controla a conexão com um servidor SMTP, para isso informei, host e a porta. O método SMTP.sendmail(sender, recipient, message) envia o email e o método SMTP.quit() termina a sessão com o servidor SMTP e fecha a conexão.</p>
<p>No exemplo acima como pode ser observado o corpo do email é um texto atribuído a uma variável, mas e se você estiver usando um script que irá gerar um log em um arquivo e você além de querer que esse log fique no arquivo salvo, você quer que ele também seja enviado por email, nesse caso ficaria assim:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"> <span style="color: #ff4500;">8</span>  <span style="color: #ff7700;font-weight:bold;">def</span> MySendMail<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
 <span style="color: #ff4500;">9</span>      server        = <span style="color: #dc143c;">smtplib</span>.<span style="color: black;">SMTP</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'smtp.krix.com.br'</span>, <span style="color: #ff4500;">25</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">10</span>      sender        = <span style="color: #483d8b;">'relatorio@krix.com.br'</span>
<span style="color: #ff4500;">11</span>      recipient     = <span style="color: #483d8b;">'krix@krix.com.br'</span>
<span style="color: #ff4500;">12</span>      directory     = <span style="color: #483d8b;">'/home/krix/message_for_email.txt'</span>
<span style="color: #ff4500;">13</span>      open_archive  = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>directory, <span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">14</span>      message       = open_archive.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">15</span>      server.<span style="color: black;">sendmail</span><span style="color: black;">&#40;</span>sender, recipient, message<span style="color: black;">&#41;</span>
<span style="color: #ff4500;">16</span>      server.<span style="color: black;">quit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: #ff4500;">17</span>      open_archive.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<div class="topsy_widget_data topsy_theme_hot-pink" style="float: left;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fblog.krix.com.br%252F2009%252F07%252F11%252Fenviando-email-em-python%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Enviando%20Email%20em%20Python%20%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.krix.com.br/2009/07/11/enviando-email-em-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
