كتابة القيم بدون نقاط عشرية إلى ملف آخر باستخدام الملف الخارجي

StackOverflow https://stackoverflow.com//questions/23033787

  •  21-12-2019
  •  | 
  •  

سؤال

يوجد أدناه رمز يأخذ القيم من ملفين txt لإنشاء ملف 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]))

تبدو الأسطر القليلة الأولى من ملف الإخراج

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

هل كانت مفيدة؟

المحلول

قد تكون هناك طرق أكثر أناقة لدمج المصفوفات الخاصة بك من حلقة for وطرق أكثر أناقة للكتابة في ملف.لكن باستخدام الكود الخاص بك، يجب أن تكون قادرًا على استبدال السطر الأخير للحصول على النتيجة المطلوبة:

استبدله ب outfile.write('%d %d %d\n' % (int(plate2[i]), int(mjd2[i]), int(fiber2[i])))

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top