Dividir arquivo de texto grande de acordo com valores de registro

1

Existem algumas questões semelhantes neste site, mas a minha é um pouco diferente.

Eu tenho um arquivo de texto de 30 GB e preciso dividi-lo em arquivos menores de acordo com os diferentes valores de registro.

Por exemplo:

   NAME       DATE      AMOUNT  
    AA      02.03.2014  768,30
    AA      03.03.2014  234,15
    BB      12.01.2014  238,00
    BB      15.09.2014  567,00
    BB      06.12.2014  323,00
    CC      08.02.2015  456,00
    CC      09.02.2015  213,00

em ---- >

AA.TXT

   NAME       DATE      AMOUNT  
    AA      02.03.2014  768,30
    AA      03.03.2014  234,15

BB.TXT

   NAME      DATE        AMOUNT 
    BB       12.01.2014  238,00
    BB       15.09.2014  567,00
    BB       06.12.2014  323,00

CC.TXT

   NAME     DATE         AMOUNT
   CC      08.02.2015    456,00
   CC      09.02.2015    213,00

Aqui eu encontrei uma pista , mas eu mal conheço o script do Powershell, então eu não consegui descobrir maneira de dividir arquivos de acordo com o valor NAME.

Na resposta que citei acima, ele busca um parêntese [ , o que eu procuro é um valor diferente daquele acima na coluna NOME.

AND;

Arquivos menores em formatos .txt farão o trabalho MAS o seguinte é bem-vindo:

- Se a contagem de linhas for < 1.000.000, depois extraia os registros em um arquivo .xls (ou .xlsx).

Qualquer solução em qualquer outro idioma também é bem-vinda.

Obrigado.

    
por bonsvr 10.02.2015 / 12:06

1 resposta

2

Python:

cpath="C:/Path/to/File"
infile=cpath+"/data.txt"

with open(infile) as f:
for line in f:
         content = line.split()

         outfile = cpath + "/" + content[0] + ".txt"

         with open(outfile,'a') as f2: 
              f2.write(line)
    
por 10.02.2015 / 12:59