Pergunta

abaixo está um código que pega valores de dois arquivos txt para fazer outro arquivo txt

plate1, mjd1, fiber1, d1, pval1 = np.loadtxt('combine3ga.txt', unpack='True')  
plate2, mjd2, fiber2, d2, pval2 = np.loadtxt('combine4ga.txt', unpack='True')

with open('ekek2.txt', 'w') as outfile:
    for i in range(len(plate1)):
        if d2[i] < d1[i] and pval2[i] > 0.8:
            print plate2[i], mjd2[i], fiber2[i], d2[i], pval2[i]
            with open('ekek2.txt', 'a') as outfile:
                outfile.write('{0} {1} {2}\n'.format(plate2[i], mjd2[i], fiber2[i]))

As primeiras linhas do arquivo de saída parecem

1958.0 53385.0 614.0

2214.0 53794.0 308.0

436.0 51883.0 634.0

Estou tentando fazer com que os valores sejam números inteiros, sem incluir decimais, como

1958 53385 614

2214 53794 308

436 51883 634

Foi útil?

Solução

Pode haver maneiras mais elegantes de combinar seus arrays do que um loop for e maneiras mais elegantes de gravar em um arquivo.Mas usando seu código, você poderá substituir a última linha para obter o resultado desejado:

Substitua-o por outfile.write('%d %d %d\n' % (int(plate2[i]), int(mjd2[i]), int(fiber2[i])))

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