Arquivos
Um arquivo é um conjunto de dados na memória externa que tem um nome. 
Existem dois tipos de arquivos em Python:
- 
texto, que contém texto quebrado em uma linha; Dos caracteres especiais em arquivos de texto, só pode haver caracteres de nova linha ("
\n") e retornar ao início da linha ("
\r" ;); 
- 
binário, que armazena quaisquer dados binários sem restrições (por exemplo, imagens, sons, vídeos, etc.).
A seguir, consideraremos o trabalho com arquivos de texto.
 
O princípio de trabalhar com um arquivo do programa
Consiste em três etapas:
1. abrindo um arquivo;
2. trabalhe com o arquivo;
3. fechando o arquivo.
Este princípio de operação é chamado de 
 "princípio do sanduíche"..
Ao abrir um arquivo, é indicado o modo de operação: leitura, escrita ou anexação de dados ao final do arquivo. O arquivo aberto está bloqueado e outros programas não podem acessá-lo. Depois de trabalhar com o arquivo, você deve fechá-lo para interromper a conexão com o programa. Quando um arquivo é fechado, todas as alterações feitas pelo programa nesse arquivo são gravadas no disco. Python trabalha com arquivos por meio de variáveis de arquivo.
A função 
open() permite
 abrir um arquivo e retorna uma variável de arquivo que pode ser usada para acessar o arquivo.
f = open(file_name, access_mode), 
onde:
- 
file_name - nome do arquivo a ser aberto
- 
access_mode - modo de abertura de arquivo. Pode ser: ler, escrever, etc. O modo padrão é ler (r), salvo indicação em contrário. 
 
Lista completa de modos de abertura de arquivo
| Modo | 
Descrição | 
r | 
Somente leitura. | 
w | 
Somente gravável. Irá criar um novo arquivo se não for encontrado com o nome especificado. | 
rb | 
Somente leitura (binário). | 
wb | 
Somente gravação (binário). Irá criar um novo arquivo se não for encontrado com o nome especificado. | 
r+ | 
Para ler e escrever. | 
rb+ | 
Para leitura e escrita (binário). | 
w+ | 
Para ler e escrever. Irá criar um novo arquivo gravável se não for encontrado com o nome especificado. | 
wb+ | 
Para leitura e escrita (binário). Irá criar um novo arquivo gravável se não for encontrado com o nome especificado. | 
a | 
Abre para adicionar novo conteúdo. Irá criar um novo arquivo gravável se não for encontrado com o nome especificado. | 
a+ | 
Abre para adicionar novo conteúdo. Irá criar um novo arquivo para ler a entrada se não for encontrado com o nome especificado. | 
ab | 
Abre para adicionar novo conteúdo (binário). Irá criar um novo arquivo gravável se não for encontrado com o nome especificado. | 
ab+ | 
Abre para adicionar novo conteúdo (binário). Irá criar um novo arquivo para ler a entrada se não for encontrado com o nome especificado. | 
 
O método 
close() permite que você 
feche um arquivo.
Exemplo
Fin = open("input.txt")
Fout = open("output.txt")
   # fazer algo com arquivos
fout.close()
Fin.close()
Se um arquivo existente for aberto para gravação, seu conteúdo será destruído. Após o término do programa, todos os arquivos abertos são fechados automaticamente.