Como posso abrir vários arquivos (número de arquivos desconhecidos anteriormente) usando a instrução “with open”?
Eu especificamente preciso usarwith open
para abrir os arquivos, porque preciso abrir algumas centenas de arquivos e mesclá-los usando a mesclagem K-way. Entendo que, idealmente, eu deveria ter mantido K baixo, mas não previ esse problema.
Começar do zero não é uma opção agora, pois tenho um prazo a cumprir. Portanto, neste momento, preciso de E / S muito rápidas que não armazenem a parte inteira / enorme do arquivo na memória (porque existem centenas de arquivos, cada um com ~ 10 MB). Eu só preciso ler uma linha de cada vez para mesclar o K-way. Reduzir o uso de memória é meu foco principal agora.
Eu aprendi issowith open
é a técnica mais eficiente, mas não consigo entender comoopen
todos os arquivos juntos em um únicowith open
declaração. Desculpe minha ignorância iniciante!
Atualizar: Este problema foi resolvido. Acontece que o problema não era sobre como eu estava abrindo os arquivos. Eu descobri que o uso excessivo de memória era devido à coleta de lixo ineficiente. Eu não usowith open
em absoluto. Eu usei o regularf=open()
ef.close()
. A coleta de lixo salvou o dia.