Pular para o conteúdo

Arquivos

Definição

  • Um arquivo é um componente básico de qualquer sistema operacional e serve para o armazenamento de informação. Um arquivo nada mais é que uma estrutura lógica que permite o acesso dos dados pelo sistema operacional usado.
  • Um sistema de arquivos é um conjunto de arquivos usando uma determinada organização lógica.

Métodos

  • Open() – abrir um arquivo com um dos modos mostrados da tabela abaixo.
ModoSignificadoDescrição
rreadAbre o arquivo para leitura (valor padrão)
aappendAbre o arquivo para adicionar no final. Cria o arquivo se ele não existe.
wwriteAbre o arquivo para escrita. Cria o arquivo se ele não existe.
xcreateCria o arquivo. Retorna erro se o arquivo já existe.
ttextArquivo usa o modo texto (padrão) – usa caracteres de texto.
bbinaryArquivo usa o modo binário (padrão para imagens) – usa bits 0/1.
  • read() – ler todo o arquivo
  • readline() – ler uma linha do arquivo.
  • write() – escreve no arquivo.
  • writelines() – escreve o conteúdo de uma lista para um arquivo.
  • close() – fecha o arquivo.
  • remove() – deleta arquivo.
  • rmdir() – deleta diretório vazio.
  • rmtree() – deleta diretório e todo o seu conteúdo.

Exemplos

Os exemplos mostrados abaixo estão usando o arquivo poema.txt que possui um poema de Cecília Meireles.

	Motivo
		Cecília Meireles

    Eu canto porque o instante existe
    e a minha vida está completa.
    Não sou alegre nem sou triste:
    sou poeta.

    Irmão das coisas fugidias,
    não sinto gozo nem tormento.
    Atravesso noites e dias
    no vento.

    Se desmorono ou se edifico,
    se permaneço ou me desfaço,
    — não sei, não sei. Não sei se fico
    ou passo.

    Sei que canto. E a canção é tudo.
    Tem sangue eterno a asa ritmada.
    E um dia sei que estarei mudo:
    — mais nada.
  • Exemplo: Ler todo o arquivo e o apresenta na saída padrão.
arq = open("poema.txt", 'r')
print(arq.read())
arq.close()
  • Exemplo: Numera as linhas do poema antes de exibi-las na saída padrão.
arq = open("poema.txt", 'r')
linhas = arq.readlines()
num = 0
for linha in linhas:
   num += 1
   print(num, "- ", linha)
arq.close()
  • Exemplo: Conta o número de linhas do arquivo.
arq = open("poema.txt", 'r')
num = len(arq.readlines())
print('Número de linhas:', num)
arq.close()

A resposta é:

Número de linhas: 22
  • Exemplo: Acrescenta ao final do poema, uma linha em branco e a frase “Do livro Viagem, publicado em 1939”.
arq = open("poema.txt", 'a')
novaLinha = "\n Do livro Viagem, publicado em 1939"
arq.write(novaLinha)
arq.close()
  • Exemplo: Escreve parte do poema “Ou isto ou aquilo” de Cecília Meireles no arquivo poema2.txt.
arq = open("poema2.txt", 'w')
poema = ["Ou se tem chuva e não se tem sol,\n", "ou se tem sol e não se tem chuva!\n\n", "Ou se calça a luva e não se põe o anel,\n", "ou se põe o anel e não se calça a luva!\n\n", "Quem sobe nos ares não fica no chão,\n", "quem fica no chão não sobe nos ares."]
arq.writelines(poema)
arq.close()

O arquivo poema2.txt é mostrado abaixo.

Ou se tem chuva e não se tem sol,
ou se tem sol e não se tem chuva!

Ou se calça a luva e não se põe o anel,
ou se põe o anel e não se calça a luva!

Quem sobe nos ares não fica no chão,
quem fica no chão não sobe nos ares.
  • Exemplo: Elimina as linhas em branco do arquivo poema.txt.
arq = open("poema.txt", 'r')
linhas = arq.readlines()
arq.close()
arq = open("poema.txt", 'w')
for linha in linhas:
   if linha != '\n':
      arq.write(linha)
arq.close()
  • Exemplo: Deleta o arquivo poema.txt se o arquivo está no atual diretório de trabalho. Note que é preciso importar a biblioteca os (possui diversas interfaces com o sistema operacional).
import os
try:
    os.remove("poema.txt")
    print("Arquivo deletado com sucesso")
except OSError as erro:
    print(erro)
    print("Arquivo não deletado")
  • Exemplo: Deleta o diretório testes se ele existir dentro do diretório de trabalho e se ele for um diretório vazio. Uma mensagem de erro é mostrada no caso contrário.
import os
try:
    os.rmdir("testes")
    print("Diretório deletado com sucesso")
except OSError as erro:
    print(erro)
    print("Diretório não removido")
  • Exemplo: Deleta o diretório testes e todo o seu conteúdo. Note que o script usa a biblioteca shutil (contém operações de alto nível para arquivos).
import shutil
try:
    shutil.rmtree("testes")
    print("Diretório e seu conteúdo deletados com sucesso")
except OSError as erro:
    print(erro)
    print("Diretório não removido")