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.
Modo | Significado | Descrição |
r | read | Abre o arquivo para leitura (valor padrão) |
a | append | Abre o arquivo para adicionar no final. Cria o arquivo se ele não existe. |
w | write | Abre o arquivo para escrita. Cria o arquivo se ele não existe. |
x | create | Cria o arquivo. Retorna erro se o arquivo já existe. |
t | text | Arquivo usa o modo texto (padrão) – usa caracteres de texto. |
b | binary | Arquivo 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")