Dividir arquivo
Ao trabalhar com arquivos grandes, como logs de servidor ou datasets, carregar tudo na memória de uma vez pode travar o seu programa. Dividir o arquivo em partes menores permite processar cada pedaço separadamente ou enviar por partes. O readlines() seguido de slicing é a maneira mais direta de fazer isso sem loops complexos.
O PROBLEMA
Divida um arquivo em duas partes com readlines() e slicing.
EXEMPLO
parte1.txt e parte2.txt criados
SOBRE O CONCEITO
readlines() lê todas as linhas do arquivo e retorna uma lista de strings, cada uma com a quebra de linha no final. Com slicing, você seleciona um subconjunto dessa lista, por exemplo linhas[:metade] para a primeira parte e linhas[metade:] para a segunda. O erro comum é errar o índice do slice, como usar metade no lugar de len(linhas)//2, o que pode cortar no lugar errado ou gerar partes vazias. O writelines() escreve uma lista de strings diretamente no arquivo de saída, mantendo as quebras de linha. Lembre-se de usar with para garantir que os arquivos sejam fechados corretamente, mesmo em caso de erro.
RESOLUÇÃO