Pergunta

Quero limpar minha saída e escrever apenas parte da linha necessária para um novo arquivo e não toda a linha. Esta é a seção de codificação relevante:

counter = 1

for line in completedataset:
    print counter
    counter +=1

    for t in matchedLines:
       if t in line[:line.find(',')]:
            smallerdataset.write(line)
            break

Aqui está uma amostra dos dados:

NOVE1780418 "," --- "," JAX17054099 "," 5 "," 156323558 ", etc para a linha.

Eu só quero escrever até o número antes da 3ª vírgula. Preciso de ajuda para modificar a linha de gravação apenas para escrever até a terceira vírgula. Esse arquivo é muito grande e espero que qualquer novo código não diminua o programa, mas acelera. Obrigado Bob

Foi útil?

Solução

Deve ser tão simples assim ...

for line in infile:
    line = line.strip().split(',')
    outfile.write(','.join(line[:3]) + '\n')

Outras dicas

for line in infile:
    line = line.strip().split(',',3)
    outfile.write(','.join(line[:-1]) + '\n')

Se houver a possibilidade de '' aparecer em qualquer um dos campos, você precisará usar o módulo CSV

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top