O que é o módulo OS do Python e como usá-lo?

O que é o módulo OS do Python e como usá-lo?

O módulo OS em Python fornece acesso a funções específicas do sistema para lidar com o sistema de arquivos, processos, planejador, etc. Você precisa dominar o sistema Python OS para escrever aplicativos que lidam com problemas do mundo real. Este guia discute alguns dos principais conceitos e ilustra como usar o comando do sistema Python.





Recursos do sistema Python OS

O sistema operacional funciona como uma forma portátil de interagir com o sistema operacional subjacente. Ele oferece acesso a nomes de arquivos, argumentos de linha de comando, variáveis ​​de ambiente, parâmetros de processo e hierarquia do sistema de arquivos junto com outras funcionalidades.





Este módulo também contém dois submódulos, o módulo os.sys e o módulo os.path. Você pode usar as funções fornecidas pelo módulo OS para realizar uma ampla variedade de tarefas. Alguns usos comuns incluem a execução de comandos shell, gerenciamento de arquivos e diretórios, processos de geração, etc.





Introdução ao Módulo OS

A maneira mais fácil de explorar o módulo OS é por meio do interpretador. Você pode importar o módulo para lá e usar as funções do sistema sem escrever o código-fonte. Você precisa ter o Python instalado para isso, no entanto. Então vá em frente e instale o Python em sua máquina local.

Relacionado: Como instalar o Python no Ubuntu



Inicie o intérprete digitando Pitão em seu terminal ou shell de comando. Depois de aberto, importe o módulo OS usando a seguinte instrução.

como obter meu próprio filtro snapchat
>>> import os

Agora você pode acessar as funcionalidades fornecidas pelo módulo OS, incluindo o Python sistema comando. Por exemplo, você pode determinar a plataforma do sistema usando o nome comando. O exemplo a seguir mostra como invocar comandos do sistema expostos pelo módulo OS.





>>> os.name

Esta função verifica se certos módulos específicos do sistema operacional estão presentes e determina a plataforma com base nisso. Use o uname função para obter informações detalhadas.

>>> os.uname()

Este comando exibe a plataforma exata do sistema ao lado da arquitetura da máquina, liberação e informações de versão. Use o getcwd função para recuperar o diretório de trabalho atual.





>>> os.getcwd()

Você pode alterar facilmente o diretório de trabalho usando o comando do sistema Python chdir . Passe o novo local como um parâmetro de string.

>>> os.chdir('/tmp')

o mkdir função do módulo OS torna a criação de novos diretórios direta. Também nos permite criar pastas recursivas, o que significa que o Python criará todos os diretórios ausentes que são pais do diretório folha.

>>> os.mkdir('new-dir')

Use o rmdir comando para excluir diretórios de seu diretório de trabalho.

>>> os.rmdir('new-dir')

Exemplos de comando do sistema Python

O comando do sistema fornecido pelo módulo OS permite que os programadores executem comandos shell. Certifique-se de definir o nome do comando como uma string. Depois de chamar o python sistema comando, ele executará o comando fornecido em um novo subshell.

>>> cmd = 'date'
>>> os.system(cmd)

Você pode executar outros aplicativos independentes usando este mesmo método. O exemplo a seguir executa o editor de terminal nano de seu shell Python.

>>> cmd = 'nano'
>>> os.system(cmd)

O sistema Python OS também exibe o código de retorno para cada comando executado. Os sistemas POSIX retornam 0 para execução bem-sucedida e valores diferentes de zero para indicar problemas.

Você pode usar o sistema operacional em Python para executar o que quiser. Por exemplo, se seu programa precisa ler as informações de versão de um programa na máquina do usuário, você pode fazer algo como o seguinte.

>>> cmd = 'gcc --version'
>>> os.system(cmd)

O exemplo a seguir executa um comando shell simples que cria um novo arquivo chamado users.txt e preenche-o com todos os usuários conectados. Muitos programas Python fazem essas coisas.

>>> os.system('users > test')

Estamos passando o nome do comando para o sistema OS como uma string. Você pode usar todos os tipos de comandos de terminal úteis o mesmo caminho.

>>> os.system('ping -c 3 google.com')

Você também pode usar subprocesso chamadas para a execução de comandos do sistema em Python. Isso fornece vários benefícios adicionais, incluindo tempo de execução mais rápido, melhor tratamento de erros, análise de saída e comandos shell de tubulação. A documentação oficial do Python também recomenda a chamada de subprocesso em vez de módulos mais antigos, como os.system e os.spawn .

>>> import subprocess
>>> subprocess.run(['ping','-c 3', 'example.com'])

Gerenciando arquivos e diretórios por meio do módulo de sistema operacional

Mostramos como criar arquivos e diretórios simples usando o módulo Python OS. E se você quiser criar pastas aninhadas? O sistema operacional também cuida disso para nós, programadores. Por exemplo, os snippets abaixo criam a pasta $ HOME / test / root / api . Ele também criará os diretórios pai necessários, se eles não estiverem disponíveis.

>>> dirname = os.path.join(os.environ['HOME'], 'test', 'root', 'api')
>>> print(dirname)
>>> os.makedirs(dirname)

Primeiro, recuperamos o diretório inicial usando cerca de e juntou os nomes das pastas via os.path.join . A declaração de impressão exibe o nome da pasta, e makedirs cria.

Podemos ver o novo diretório usando o listdir método do módulo OS.

>>> os.chdir(os.path.join(os.environ['HOME'], 'test', 'root', 'api'))
>>> os.system('touch file1 file2 file3')
>>> os.listdir(os.environ['HOME'])

Você pode facilmente renomear o diretório api usando o renomear comando oferecido pelo módulo OS. A instrução a seguir renomeia este diretório api para test-api.

>>> os.rename('api', 'test-api')

Use o isfile e nome função do sistema operacional se seu programa precisa validar arquivos ou diretórios específicos.

>>> os.path.isfile('file1')
>>> os.path.isdir('file1')

O módulo OS em Python também permite que os desenvolvedores extraiam nomes de arquivos e pastas junto com extensões de arquivo. Os snippets abaixo ilustram o uso de os.path.split e os.path.splitext a respeito disso.

>>> dir = os.path.join(os.environ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split(dir)
>>> print(dirname)
>>> print(basename)

Use o código abaixo para extrair extensões como .txt ou .mp3 de nomes de arquivos.

>>> filename, extension = os.path.splitext(basename)
>>> print(filename)
>>> print(extension)

Uso diverso do sistema Python OS

O módulo OS oferece muitas funções adicionais para manipular coisas como processos do usuário e o agendador de tarefas. Por exemplo, você pode obter rapidamente o UID (id do usuário) do processo atual usando o testemunhado função.

>>> os.getuid()
>>> os.getgid()

o getgid função retorna o id de grupo do processo em execução. Usar getpid para obter o PID (id do processo) e getppid para obter o id do processo pai.

>>> os.getpid()
>>> os.getppid()

Você também pode usar o módulo OS para alterar as permissões de arquivos e diretórios do seu programa Python. Use o chmod função do sistema operacional para fazer isso.

>>> os.chmod('file1.txt', 0o444)

Este comando altera a permissão de arquivo1.txt para 0444 . Usar 0o444 ao invés de 0444 para garantir que a instrução seja compatível com as duas versões principais do Python.

Aproveite o poder do sistema Python OS

O módulo OS do Python fornece tudo que você precisa para interagir com o sistema operacional subjacente. Um entendimento claro do sistema OS é necessário para escrever programas verdadeiramente multiplataforma. Cobrimos algumas das principais funcionalidades fornecidas por este módulo para ajudá-lo a começar. Experimente no seu próprio ritmo e não se esqueça de mexer neles.

Compartilhado Compartilhado Tweet O email Como criar e usar tuplas em Python

Pronto para levar sua codificação Python para o próximo nível? É hora de entender como criar e usar tuplas.

Leia a seguir
Tópicos relacionados
  • Programação
  • Pitão
Sobre o autor Rubaiat Hossain(39 artigos publicados)

Rubaiat é um graduado em CS com uma forte paixão por código aberto. Além de ser um veterano do Unix, ele também trabalha com segurança de rede, criptografia e programação funcional. Ele é um colecionador ávido de livros de segunda mão e tem uma admiração sem fim pelo rock clássico.

Mais de Rubaiat Hossain

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever