# Módulo para matemática import math # Módulo para matemática (de complexos) import cmath # Complexos for cpx in [3j, 1.5 + 1j, -2 - 2j]: # Conversão para coordenadas polares plr = cmath.polar(cpx) print 'Complexo:', cpx print 'Forma polar:', plr, '(em radianos)' print 'Amplitude:', abs(cpx) print 'Ângulo:', math.degrees(plr[1]), '(graus)' import random import string # Escolha uma letra print random.choice(string.ascii_uppercase) # Escolha um número de 1 a 10 print random.randrange(1, 11) # Escolha um float no intervalo de 0 a 1 print random.random() from decimal import Decimal t = 5. for i in range(50): t = t - 0.1 print 'Float:', t t = Decimal('5.') for i in range(50): t = t - Decimal('0.1') print 'Decimal:', t from fractions import Fraction # Três frações f1 = Fraction('-2/3') f2 = Fraction(3, 4) f3 = Fraction('.25') print "Fraction('-2/3') =", f1 print "Fraction('3, 4') =", f2 print "Fraction('.25') =", f3 # Soma print f1, '+', f2, '=', f1 + f2 print f2, '+', f3, '=', f2 + f3 import sys # Criando um objeto do tipo file temp = open('temp.txt', 'w') # Escrevendo no arquivo for i in range(20): temp.write('%03d\n' % i) # Fechando temp.close() temp = open('temp.txt') # Escrevendo no terminal for x in temp: # Escrever em sys.stdout envia # o texto para a saída padrão sys.stdout.write(x) temp.close() import sys import os.path fn = 'teste.txt' if not os.path.exists(fn): print 'Tente outra vez...' sys.exit() # Numerando as linhas for i, s in enumerate(open(fn)): print i + 1, s, # Imprime uma lista contendo linhas do arquivo print open('temp.txt').readlines() import os.path import glob # Mostra uma lista de nomes de arquivos # e seus respectivos tamanhos for arq in sorted(glob.glob('*.py')): print arq, os.path.getsize(arq) import os texto = 'Teste' # cria um arquivo temporário temp = os.tmpfile() # Escreve no arquivo temporário temp.write('Teste') # Volta para o inicio do arquivo temp.seek(0) # Mostra o conteúdo do arquivo print temp.read() # Fecha o arquivo temp.close() """ Gravando texto em um arquivo compactado """ import zipfile texto = """ *************************************** Esse é o texto que será compactado e... ... guardado dentro de um arquivo zip. *************************************** """ # Cria um zip novo zip = zipfile.ZipFile('arq.zip', 'w', zipfile.ZIP_DEFLATED) # Escreve uma string no zip como se fosse um arquivo zip.writestr('texto.txt', texto) # Fecha o zip zip.close() """ Lendo um arquivo compactado """ import zipfile # Abre o arquivo zip para leitura zip = zipfile.ZipFile('arq.zip') # Pega a lista dos arquivos compactados arqs = zip.namelist() for arq in arqs: # Mostra o nome do arquivo print 'Arquivo:', arq # Pegando as informações do arquivo zipinfo = zip.getinfo(arq) print 'Tamanho original:', zipinfo.file_size print 'Tamanho comprimido:', zipinfo.compress_size # Mostra o conteúdo do arquivo print zip.read(arq) import csv # Dados dt = (('temperatura', 15.0, 'C', '10:40', '2006-12-31'), ('peso', 42.5, 'kg', '10:45', '2006-12-31')) # A rotina de escrita recebe um objeto do tipo file out = csv.writer(file('dt.csv', 'w')) # Escrevendo as tuplas no arquivo out.writerows(dt) import csv # A rotina de leitura recebe um objeto arquivo dt = csv.reader(file('dt.csv')) # Para cada registro do arquivo, imprima for reg in dt: print reg import os import sys import platform def uid(): """ uid() -> retorna a identificação do usuário corrente ou None se não for possível identificar """ # Variáveis de ambiente para cada # sistema operacional us = {'Windows': 'USERNAME', 'Linux': 'USER'} u = us.get(platform.system()) return os.environ.get(u) print 'Usuário:', uid() print 'plataforma:', platform.platform() print 'Diretório corrente:', os.path.abspath(os.curdir) exep, exef = os.path.split(sys.executable) print 'Executável:', exef print 'Diretório do executável:', exep import sys from subprocess import Popen, PIPE # ping cmd = 'ping -c 1 ' # No Windows if sys.platform == 'win32': cmd = 'ping -n 1 ' # Local só para testar host = '127.0.0.1' # Comunicação com outro processo, # um pipe com o stdout do comando py = Popen(cmd + host, stdout=PIPE) # Mostra a saída do comando print py.stdout.read() import time # localtime() Retorna a data e hora local no formato # de uma estrutura chamada struct_time, que é uma # coleção com os itens: ano, mês, dia, hora, minuto, # segundo, dia da semana, dia do ano e horário de verão print time.localtime() # asctime() retorna a data e hora como string, conforme # a configuração do sistema operacional print time.asctime() # time() retorna o tempo do sistema em segundos ts1 = time.time() # gmtime() converte segundos para struct_time tt1 = time.gmtime(ts1) print ts1, '->', tt1 # Somando uma hora tt2 = time.gmtime(ts1 + 3600.) # mktime() converte struct_time para segundos ts2 = time.mktime(tt2) print ts2, '->', tt2 # clock() retorma o tempo desde quando o programa # iniciou, em segundos print 'O programa levou', time.clock(), \ 'segundos até agora...' # Contando os segundos... for i in xrange(5): # sleep() espera durante o número de segundos # especificados como parâmetro time.sleep(1) print i + 1, 'segundo(s)' import datetime # datetime() recebe como parâmetros: # ano, mês, dia, hora, minuto, segundo # e retorna um objeto do tipo datetime dt = datetime.datetime(2020, 12, 31, 23, 59, 59) # Objetos date e time podem ser criados # a partir de um objeto datetime data = dt.date() hora = dt.time() # Quanto tempo falta para 31/12/2020 dd = dt - dt.today() print 'Data:', data print 'Hora:', hora print 'Quanto tempo falta para 31/12/2020:', \ str(dd).replace('days', 'dias') import re # Compilando a expressão regular # Usando compile() a expressão regular fica compilada # e pode ser usada mais de uma vez rex = re.compile('\w+') # Encontra todas as ocorrências que atendam a expressão bandas = 'Yes, Genesis & Camel' print bandas, '->', rex.findall(bandas) # Identifica as ocorrências de Björk (e suas variações) bjork = re.compile('[Bb]j[öo]rk') for m in ('Björk', 'björk', 'Biork', 'Bjork', 'bjork'): # match() localiza ocorrências no inicio da string # para localizar em qualquer parte da string, use search() print m, '->', bool(bjork.match(m)) # Substituindo texto texto = 'A próxima faixa é Stairway to Heaven' print texto, '->', re. sub('[Ss]tairway [Tt]o [Hh]eaven', 'The Rover', texto) # Dividindo texto bandas = 'Tool, Porcupine Tree e NIN' print bandas, '->', re.split(',?\s+e?\s+', bandas)