Запись значений без десятичных точек в другой файл с использованием outfile

Ниже приведен код, который принимает значения из двух текстовых файлов для создания другого текстового файла

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]))

Первые несколько строк выходного файла выглядят как

1958,0 53385,0 614,0

2214,0 53794,0 308,0

436,0 51883,0 634,0

Я пытаюсь сделать так, чтобы значения были целыми числами, не включая десятичные, как

1958 53385 614

2214 53794 308

436 51883 634

1 ответ

Решение

Могут быть более элегантные способы комбинирования ваших массивов, чем цикл for, и более элегантные способы записи в файл. Но используя ваш код, вы сможете заменить последнюю строку, чтобы получить желаемый результат:

Замени это outfile.write('%d %d %d\n' % (int(plate2[i]), int(mjd2[i]), int(fiber2[i])))

Другие вопросы по тегам