CodeGym /Cursos /Python SELF PT /Trabalhando com arquivos no disco

Trabalhando com arquivos no disco

Python SELF PT
Nível 21 , Lição 5
Disponível

6.1 Trabalhando com arquivos

O Python oferece várias funções e módulos embutidos para trabalhar com arquivos e diretórios. As operações principais são feitas usando os módulos embutidos os, shutil, entre outros.

Três operações principais com arquivos:

  • Cópia
  • Movimentação
  • Exclusão

Para realizar essas operações, o módulo shutil é ideal.

Copiando um arquivo


import shutil

shutil.copy('source.txt', 'destination.txt')
        

Movendo um arquivo


import shutil

shutil.move('source.txt', 'destination.txt')
        

Excluindo um arquivo


import os

os.remove('example.txt')
        

Mais fácil do que nunca.

6.2 Verificando a existência de um arquivo

Muitas vezes, precisamos verificar se um determinado arquivo existe ou não. Para isso, o módulo os tem um método específico — exists().

Verificação da existência de um arquivo


import os

if os.path.exists('example.txt'):
    print("File exists")
else:
    print("File does not exist")
    # Se o arquivo não existir, o programa executa as ações descritas no bloco else.
    # Por exemplo, você pode emitir um aviso, criar um novo arquivo ou sair do programa.

        

Se o arquivo não existir, o programa pode lidar com isso usando condições ou lançando uma exceção.

6.3 Verificando o tipo de objeto: arquivo ou diretório

Muitas vezes, precisamos verificar se um objeto é um arquivo ou um diretório. Por exemplo, se você estiver lendo todo o conteúdo de um diretório e quiser tratar arquivos de uma maneira e diretórios de outra.

Para esses casos, há dois métodos especiais — isdir(), que verifica se o objeto é um diretório, e isfile(), que verifica se o objeto é um arquivo.

Verificação — é diretório ou não


if os.path.isdir('example_directory'):
    print("É um diretório")
else:
    print("Não é um diretório")
        

Verificação — é arquivo ou não


if os.path.isfile('example_file'):
    print("É um arquivo")
else:
    print("Não é um arquivo")
        

Essas são funções muito úteis que você usará mais frequentemente do que imagina. :)

6.4 Trabalhando com caminhos

O módulo os tem um submódulo os.path, que contém funções úteis para trabalhar com arquivos e diretórios. Aqui estão algumas delas:

Obtendo a extensão do arquivo

A função splitext() divide o nome do arquivo em duas partes e retorna uma lista com dois elementos: o nome e a extensão.


import os.path

# Obtendo a extensão do arquivo
file_path = 'example.txt'
file_extension = os.path.splitext(file_path)[1]
print(f"Extensão do arquivo: {file_extension}")
        

Obtendo o nome do arquivo sem a extensão


import os.path

# Obtendo o nome do arquivo sem a extensão
file_path = 'example.txt'
file_name = os.path.splitext(os.path.basename(file_path))[0]
print(f"Nome do arquivo sem extensão: {file_name}")
        

Obtendo o nome do arquivo do caminho

A função basename() retorna apenas o nome do arquivo, cortando todo o caminho até ele.


import os.path

# Obtendo o nome do arquivo do caminho
file_path = '/path/to/example.txt'
file_name = os.path.basename(file_path)
print(f"Nome do arquivo: {file_name}")
        

Obtendo o diretório do caminho

Também é fácil obter apenas o diretório de um nome de arquivo usando a função dirname().


import os.path

# Obtendo o diretório do caminho
file_path = '/path/to/example.txt'
directory = os.path.dirname(file_path)
print(f"Diretório: {directory}")
        

Juntando caminhos

Se você tem um diretório separado e um nome de arquivo separado, você pode obter o caminho completo para esse arquivo.


import os.path

# Juntando caminhos
directory = '/path/to'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Caminho completo: {full_path}")
        

6.5 Caminhos independentes de plataforma

Ao trabalhar com caminhos, é importante considerar as diferenças entre sistemas operacionais. Os separadores de caminho podem variar, e o código que funciona em uma plataforma pode não funcionar em outra. Para evitar problemas ao transferir código entre diferentes sistemas operacionais, use as funções os.path.join(), os.path.abspath(), e os.path.dirname(), que garantem compatibilidade entre plataformas.

Por exemplo:


import os

# Juntando caminhos de forma independente de plataforma
directory = 'some_directory'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Caminho completo: {full_path}")
        

Obtendo o caminho absoluto

Se você tem apenas um caminho relativo ao diretório de trabalho atual, mas quer convertê-lo em absoluto, use a função abspath().


import os.path

# Obtendo o caminho absoluto
relative_path = 'example.txt'
absolute_path = os.path.abspath(relative_path)
print(f"Caminho absoluto: {absolute_path}")
        

Importante! Sempre use funções do sistema ao trabalhar com caminhos, pois seu código pode ser executado em outro sistema operacional, onde o separador de arquivos não é \, mas /, ou onde são proibidos ":" em caminhos ou algo mais.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION