Métodos Avançados Do Módulo os
O módulo os contém vários métodos importantes que capacitam códigos Python a controlarem inúmeros aspectos do sistema operacional. Neste post, abordaremos cinco métodos que podem ser usados para as mais diferentes aplicações.
os.path.expanduser()
O método os.path.expanduser() em Python possibilita expandir um caminho que começa com um caractere til (~) para o diretório inicial do usuário. Ele é útil para trabalhar com caminhos específicos de usuários. Além disso, os.path.expanduser() funciona de forma independente de plataforma. Portanto, ele é particularmente útil para criar códigos multiplataforma que precisam acessar diretórios específicos de diferentes usuários. A função lida com os formatos ~ (página inicial do usuário atual) e ~username (página inicial do usuário especificado). Veja alguns exemplos de como usar esse método:
import os.path
# Expande ~ para o diretório inicial do usuário
home_dir = os.path.expanduser("~")
print(home_dir) # por exemplo: /home/username ou C:\Users\username
# Expande um caminho dentro do diretório inicial
documents = os.path.expanduser("~/Documents")
print(documents) # por exemplo: /home/username/Documents
os.path.splitext()
Em Python, o método os.path.splitext() é usado para dividir um caminho de arquivo em uma tupla contendo o caminho raiz e a extensão do arquivo. Como os.path.splittext() faz parte do módulo os.path, ele fornece uma maneira independente de plataforma para lidar com caminhos de arquivo. Esta função é particularmente útil ao trabalhar com nomes de arquivos e extensões. Para dividir um caminho, os.path. splitext() procura a última ocorrência de um ponto (.) no caminho. Ele divide o caminho neste ponto, retornando tudo antes do último ponto como raiz e tudo depois (incluindo o ponto) como a extensão. Se não houver ponto no caminho, ele retornará o caminho inteiro como raiz e uma string vazia como extensão. Abaixo, veja um exemplo ilustrativo de como usá-lo:
import os.path
# Uso básico
raiz, ext = os.path.splitext("/caminho/para/meu_arquivo.txt")
print(raiz) # Output: /caminho/para/meu_arquivo
print(ext) # Output: .txt
A função os.path.splitext() do módulo os considera apenas o último ponto em um caminho. Para arquivos com várias extensões (como.tar.gz), ela separa apenas a última extensão. Para arquivos que começam com um ponto (arquivos ocultos em sistemas do tipo Unix), o ponto é considerado parte da raiz, não da extensão.
os.stat()
O método os.stat() do módulo os permite acessar informações de status sobre um arquivo. Ele executa uma chamada do sistema de estatísticas no caminho especificado e retorna informações detalhadas sobre o arquivo ou diretório.
import os
stat_info = os.stat('meu_exemplo.txt')
print(stat_info)
# exemplo de resultado: os.stat_result(st_mode=33204, st_ino=56923712, st_dev=66306, st_nlink=1, st_uid=1000, st_gid=1000, st_size=635, st_atime=1724613497, st_mtime=1724613497, st_ctime=1724613497)
O método os.stat() retorna as seguintes informações:
st_mode: tipo e modo de arquivo (permissões)
st_ino: número do inode (index node)
st_dev: identificador do dispositivo
st_nlink: número de links físicos
st_uid: ID de usuário do proprietário
st_gid: ID do grupo do proprietário
st_size: tamanho do arquivo em bytes
st_atime: hora do acesso mais recente
st_mtime: hora da modificação de conteúdo mais recente
st_ctime: hora da alteração de metadados mais recente (Unix) ou criação (Windows)
Para acessar uma informação específica, basta especificá-la, como mostrado abaixo:
mode_info = os.stat('meu_exemplo.txt')
print(mode_info.st_mode)
os.urandom()
O método os.urandom() em Python é usado para gerar bytes aleatórios criptograficamente fortes. Ele retorna bytes aleatórios de uma fonte de aleatoriedade específica do sistema operacional. No Windows, por exemplo, ele usa o método BcryptGenRandom(). Os bytes gerados são adequados para uso em operações criptográficas. Porém, a qualidade da aleatoriedade depende da implementação do sistema operacional. Mesmo assim, ela é considerada criptograficamente segura. Veja como usar esse método:
import os
# sintaxe
# random_bytes = os.urandom(n) -> n é o número de bytes aleatórios que você deseja gerar
# exemplo
random_bytes = os.urandom(16)
print(random_bytes)
# Output: b'\xdb\xf6\xf1\xde\x92\xd4\xfdT\x95@8\xa3\x97U\xc1\x83'
os.cpu_count()
O método os.cpu_count() do módulo os retorna o número de CPUs no sistema. Ele fornece uma maneira de determinar o número de CPUs lógicas disponíveis para o processo atual. Se o número de CPUs não puder ser determinado devido a configurações ou restrições do sistema, ele retornará None.
import os
# Retorna o número de CPUs
cpu_count = os.cpu_count()
Veja também:
Concatenações com join() para strings em Python
O que é operador ternário em Python?
F-strings em Strings Multilinhas
Decodificação de strings em Python com decode()
Métodos para Manipular Strings em Python
Módulo Getpass para Prompts de Senhas
Aprenda a comparar textos com Python com Difflib
Módulo textwrap para formatação de textos
Manipulação de arquivos com Python
os.environ: gerenciamento de variáveis de ambiente com Python
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.