🌗 ← Índice
Data: 14/08/2026
Nível: Intermediário-Avançado (Mês 3 — Projetos Reais)
from pathlib import Path
pasta = Path.home() / "Downloads" # usa / para montar caminhos (funciona em Windows e Linux!)
print(pasta)
pasta_docs = Path("C:/Users/hugo/Documents") # ou relativo
💡 `Path` funciona igual em Windows, Linux e macOS — sem se preocupar com `\` vs `/`.
from pathlib import Path
caminho = Path("/tmp/meus_dados")
caminho.exists() # existe?
caminho.is_file() # é arquivo?
caminho.is_dir() # é pasta?
caminho.mkdir(parents=True, exist_ok=True) # cria pasta (e pais)
caminho.name # 'meus_dados'
caminho.suffix # '.txt' (extensão)
caminho.stem # 'meus_dados' (sem extensão)
caminho.parent # Path('/tmp')
from pathlib import Path
pasta = Path("/tmp")
# Todos os arquivos .txt
for arquivo in pasta.glob("*.txt"):
print(arquivo)
# Todos os .py recursivamente
for arquivo in pasta.rglob("*.py"):
print(arquivo)
# Todos os arquivos (não pastas)
for arquivo in pasta.iterdir():
if arquivo.is_file():
print(arquivo)
from pathlib import Path
arquivo = Path("/tmp/nota.txt")
arquivo.write_text("Olá, mundo!", encoding="utf-8")
conteudo = arquivo.read_text(encoding="utf-8")
print(conteudo)
# read_bytes / write_bytes para binários
from pathlib import Path
arquivo = Path("/tmp/nota.txt")
arquivo.rename("/tmp/nota_final.txt")
# Mover para outra pasta
Path("/tmp/nota_final.txt").replace("/tmp/backup/nota.txt")
arquivo.unlink() # apagar arquivo (erro se não existir)
pasta.rmdir() # apagar pasta VAZIA
import shutil
from pathlib import Path
from datetime import datetime
origem = Path("/home/ubuntu/navidrome/music/")
destino = Path("/tmp/backup_musica")
shutil.copytree(origem, destino) # copia pasta inteira
shutil.copy2(origem / "faixa.mp3", destino) # copia arquivo (preserva metadados)
shutil.move(origem / "faixa.mp3", destino) # move
import shutil
from datetime import datetime
from pathlib import Path
origem = Path("/etc/nginx/sites-enabled")
data = datetime.now().strftime("%Y%m%d_%H%M%S")
destino = Path(f"/tmp/backup_nginx_{data}")
shutil.copytree(origem, destino)
print(f"Backup criado em {destino}")
# /tmp/backup_nginx_20260814_153045
import shutil
shutil.make_archive("/tmp/backup_nginx", "zip", "/etc/nginx/sites-enabled")
# cria /tmp/backup_nginx.zip
Crie um script organizador.py que organiza a pasta Downloads:
Teste: rode numa pasta de teste com arquivos fake (não no seu Downloads real!)
from pathlib import Path
TIPOS = {
"Imagens": {".jpg", ".png", ".gif", ".jpeg", ".webp"},
"Documentos": {".pdf", ".docx", ".txt", ".md"},
"Planilhas": {".xlsx", ".csv", ".xls"},
}
def organizar(pasta: Path) -> None:
contagem = {}
for arquivo in pasta.iterdir():
if arquivo.is_dir():
continue
ext = arquivo.suffix.lower()
destino_nome = "Outros"
for categoria, extensoes in TIPOS.items():
if ext in extensoes:
destino_nome = categoria
break
destino = pasta / destino_nome
destino.mkdir(exist_ok=True)
arquivo.rename(destino / arquivo.name)
contagem[destino_nome] = contagem.get(destino_nome, 0) + 1
total = sum(contagem.values())
detalhes = ", ".join(f"{k}: {v}" for k, v in contagem.items())
print(f"Movidos: {total} arquivos ({detalhes})")
if __name__ == "__main__":
from pathlib import Path
organizar(Path("/tmp/teste_downloads"))
💡 Dica real: rode em ~/Downloads com cuidado — e faça backup antes!
HB Estudos · ← Voltar ao índice de Python