Python: maneira rápida e eficiente de escrever um arquivo de texto grande

Eu tenho uma pergunta relacionada à velocidade / eficiência sobre python:

Preciso escrever um grande número de arquivos R dataframe-ish muito grandes, com tamanhos de 0,5 a 2 GB. Esta é basicamente uma tabela grande e separada por tabulações, onde cada linha pode conter flutuadores, números inteiros e seqüências de caracteres.

Normalmente, eu apenas colocava todos os meus dados em numpy dataframe e usava o np.savetxt para salvá-los, mas, como existem diferentes tipos de dados, eles não podem realmente ser colocados em uma matriz.

Portanto, recorri simplesmente à montagem manual das linhas, mas isso é um pouco lento. Até agora eu estou fazendo:

1) Monte cada linha como uma string 2) Concatene todas as linhas como uma string enorme única 3) Escreva uma string no arquivo

Eu tenho vários problemas com isso: 1) O grande número de concatenações de strings acaba demorando muito tempo 2) Eu executo RAM para manter as strings na memória 3) ... o que, por sua vez, leva a um arquivo mais separado. comandos, que são muito lentos também.

Então, minha pergunta é: Qual é uma boa rotina para esse tipo de problema? Um que equilibra velocidade versus consumo de memória para concatenação de string e gravação mais eficiente em disco.

... ou talvez essa estratégia seja simplesmente ruim e eu deva fazer algo completamente diferente?

Desde já, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion