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")
