<jupyter_start><jupyter_text>Manipulando Arquivos no Python<jupyter_code># Função nativa open() gera um objeto do tipo arquivo.
# Base de dados gratuita 'automobile' https://archive.ics.uci.edu/ml/datasets/Automobile
# Download no nosso Github (https://github.com/minerandodados/mdrepo/blob/master/automobile.csv)
file = open('automobile.csv','r')
# Métodos disponiveis . 
print (file)
# Modos de abertura de arquivos

r - Modo padrão de abertura. Permite apenas leitura do arquivo.
w - Modo de escrita. Permite escrita no arquivo.
a - Modo de escrita do tipo acrescentar. Permite acrescentar informação no final do arquivo.
# Lendo varias linhas do arquivo.
lista = file.readlines()
print (type(lista))
for i in lista:
    print (i)
# Imprime a quantidade de caracteres que contém no arquivo
print (file.tell())
# Lendo um arquivo
file = open('automobile.csv')
print (file.read())<jupyter_output><empty_output><jupyter_text>Interando sobre um arquivo<jupyter_code>type(file)
# Loops para interação no arquivo ajuda no uso de memória em arquivos grandes
file = open('automobile.csv','r')
for linha in file:
    print (linha)<jupyter_output><empty_output><jupyter_text>Escrevendo em Arquivos<jupyter_code># Abre o arquivo em modo de escrita
file2 = open('resultados.txt','w')
# Usando método write() para escrever no arquivo
file2.write("Data Science é a profissão do futuro!")
file2.write("<NAME> a sua comunidade de Data Science.")
# Fecha o arquivo com o método close()
file2.close()
# Tentando ler o arquivo
file2.read()
# Abri o arquivo em modo de leitura
file2 = open('resultados.txt','r')
# Ler linha a linha
file2.readlines()
# Use o modo de abertura 'a' para adicionar linhas no final do arquivo
file2 = open('resultados.txt','a')
file2.write("Ultima linha do arquivo!")
file2.close()
file2 = open('resultados.txt','r')
file2.readlines()<jupyter_output><empty_output><jupyter_text>Método writelines()<jupyter_code># O método writelines() permite escrever uma lista de dados no arquivo
lista = ["Manipular arquivos no Python é fácil","Segunda Linha!","Mais uma linha!"]
# Abre o arquivo para escrita (sobrescreve !!)
file2 = open('resultados.txt','w')
# Escreve a lista de strings
file2.writelines(lista)
file2.close()
# Abre para leitura e imprime no formato de lista
file2 = open('resultados.txt','r')
file2.readlines()<jupyter_output><empty_output><jupyter_text>Trabalhando com a instrução "with"<jupyter_code># Com a instrução with vocẽ não precisa fechar o arquivo explicitamente.
# O Python já fecha o arquivo quando os blocos não estão sendo utilizados
with open("resultados.txt") as file2:
    print (file2.read())
# O arquivo já foi fechado pelo Python!
file2.read()
# Cria uma lista com as linhas do arquivo e fecha apos concluir
with open("automobile.csv") as file2:
    data = file2.readlines()
# Arquivo já fechado!
file2.read()
# Imprime a lista
data<jupyter_output><empty_output><jupyter_text>Separando Palavras por Linhas<jupyter_code>for linha in data:
    print (linha.split())<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10817941952506596, 'fraction_numerical': 0.007585751978891821, 'mean_word_length': 5.695364238410596, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 26, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '644206', 'license': 'MIT', 'n_tokens_mistral': 1083, 'n_tokens_neox': 1124, 'n_words': 331, 'path': 'log-prog-python/Manipulacao_arquivos.ipynb', 'repo_name': 'vallinoto/ensino', 'size': '3041'}