Prévia do material em texto
113Exercícios resolvidos da 3a edição
https://python.nilo.pro.br Atualização do 26/03/2024
acertos += tentativa
else:
erros += 1
print("Você errou!")
print("X==:==\nX : ")
print("X O " if erros >= 1 else "X")
linha2 = ""
if erros == 2:
linha2 = " | "
elif erros == 3:
linha2 = r" \| "
elif erros >= 4:
linha2 = r" \|/ "
print(f"X{linha2}")
linha3 = ""
if erros == 5:
linha3 += " / "
elif erros >= 6:
linha3 += r" / \ "
print(f"X{linha3}")
print("X\n===========")
if erros == 6:
print("Enforcado!")
break
fim = time.time() # tempo no fim da partida
print(f"Duração da partida {fim - inicio} segundos")
Exercício 09-35
Utilizando a função os.walk, crie uma página HTML com o nome e tamanho de cada arquivo de um
diretório passado e de seus subdiretórios.
import sys
import os
import os.path
# este módulo ajuda com a conversão de nomes de arquivos para links
# válidos em HTML
import urllib.request
mascara_do_estilo = "'margin: 5px 0px 5px %dpx;'"
def gera_estilo(nível):
return mascara_do_estilo % (nível * 20)
def gera_listagem(página, diretório):
nraiz = os.path.abspath(diretório).count(os.sep)
for raiz, diretórios, arquivos in os.walk(diretório):
nível = raiz.count(os.sep) - nraiz
114 Introdução à Programação com Python
https://python.nilo.pro.brAtualização do 26/03/2024
página.write(f"{raiz}")
estilo = gera_estilo(nível + 1)
for a in arquivos:
caminho_completo = os.path.join(raiz, a)
tamanho = os.path.getsize(caminho_completo)
link = urllib.request.pathname2url(caminho_completo)
página.write(
f"{a} ({tamanho} bytes)"
)
if len(sys.argv)
Arquivos
""")
página.write(f"Arquivos encontrados a partir do diretório: {diretório}")
gera_listagem(página, diretório)
página.write("""
""")
página.close()
Exercício 09-36
Utilizando a função os.walk, crie um programa que calcule o espaço ocupado por cada diretório e
subdiretório, gerando uma página html com os resultados.
import sys
import os
import os.path
import math
# Esta função converte o tamanho
# em unidades mais legíveis, evitando
# retornar e imprimir valores muito grandes.
def tamanho_para_humanos(tamanho):
115Exercícios resolvidos da 3a edição
https://python.nilo.pro.br Atualização do 26/03/2024
if tamanho == 0:
return "0 byte"
grandeza = math.log(tamanho, 10)
if grandeza Tamanho: (tamanho_para_
humanos(último[1]))"
)
pilha[-1][1] += último[1]
página.write(f"{raiz}")
d_tamanho = 0
X415f8d3a07372b29964d829bd2d63fca12d4d22
X0c7e596597771384d3acd8ffc3be36bf9a85602
Exercício 09-35
Exercício 09-36