Escrever e Ler Arquivos em Python
Escrever e Ler Arquivos em Python
Escrever e Ler Arquivos em Python
dog_breeds = reader.readlines()
writer.write(breed)
Trabalhando com bytes
Você pode realmente abrir esse arquivo no Python e examinar o conteúdo! Como o formato
do arquivo .png está bem definido, o cabeçalho do arquivo é dividido em 8 bytes, assim:
Value Interpretation
0x89 A “magic” number to indicate that this is the start of a PNG
0x50 0x4E 0x47 PNG in ASCII
Vamos trazer tudo isso para casa e ver um exemplo completo de como ler e gravar em um
arquivo. A seguir está uma ferramenta semelhante ao dos2unix que converterá um arquivo
que contém as terminações de linha de \ r \ n em \ n.
Essa ferramenta é dividida em três seções principais. O primeiro é str2unix (), que
converte uma string de \ r \ n finais de linha em \ n. O segundo é dos2unix (), que
converte uma string que contém \ r \ n caracteres em \ n. dos2unix () chama
str2unix () internamente. Por fim, existe o bloco __main__, que é chamado apenas
quando o arquivo é executado como um script. Pense nisso como a principal função
encontrada em outras linguagens de programação.
Tips and Tricks (Dicas e truques)
__File__
Isto é: “O nome do caminho do arquivo no qual o módulo foi carregado, se foi carregado de
um arquivo.”
Nota: Para reiterar, __file__ retorna o caminho relativo ao local em que o script Python inicial foi
chamado. Se você precisar do caminho completo do sistema, poderá usar os.getcwd () para obter o
diretório de trabalho atual do seu código de execução.
Aqui está um exemplo do mundo real. Em um dos meus trabalhos anteriores, fiz vários testes
para um dispositivo de hardware. Cada teste foi escrito usando um script Python com o nome
do arquivo do script de teste usado como título. Esses scripts seriam executados e poderiam
imprimir seu status usando o atributo especial __file__. Aqui está um exemplo de estrutura de
pastas:
d_path = 'dog_breeds.txt'
d_r_path = 'dog_breeds_reversed.txt'
with open(d_path, 'r') as reader, open(d_r_path, 'w') as writer:
dog_breeds = reader.readlines()
writer.writelines(reversed(dog_breeds))
Creating Your Own Context Manager(Criando seu próprio gerenciador de contexto)
Pode chegar um momento em que você precisará de um controle mais preciso do objeto de
arquivo, colocando-o dentro de uma classe personalizada. Quando você faz isso, o uso da
instrução with não pode mais ser usado, a menos que você adicione alguns métodos mágicos:
__enter__ e __exit__. Ao adicionar esses itens, você criará o que é chamado de gerenciador de
contexto.
Aqui está um modelo que você pode usar para criar sua classe personalizada: