كتابة القيم بدون نقاط عشرية إلى ملف آخر باستخدام الملف الخارجي
-
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])))
لا تنتمي إلى StackOverflow