2010-05-04 4 views
1

У меня есть массив называется MAC1_Val:Python: как записать данные в файл в определенном формате?

MAC1_Val массив ([1.00000000e + 00, 01 + -1.00000000e, -2.06306600e + 02, 2.22635749e + 02, 1.00000000e + 00, 1.00000000e + 01, 1.00000000e + 01, -2.06306600e + 02, 2.22635749e + 02, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00 , 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 0,00000000e + 00, 1.00000000e + 00, -1.08892735e + 01, 1.88607749e + 01, 1.03153300e + 01, -1.78666757e + 01, 3.33333333e-07, -3.33333333e-07, -4.21637021e-05, 4.21637021e-05, 9.98844400e-01, -1.73973001e-03, 1.20938900e-03, 1.87742948e-03 , -3.33333333e-03, -3.33333333e-03, -2.64911064e-01, -2.60959501e + 01, 2.81614422e + 01, 3.33333333e-03, -6.66666667e-03, 3.33333333 e-03, 0,00000000e + 00, 0,00000000e + 00])

и я хочу писать в файл (.txt) значений в определенном формате, как это:

1.000000e+00 
-1.000000e+01 
-2.063066e+02 
2.226357e+02 
1.000000e+00 
1.000000e+01 ....... 

отмечают, что 6 цифр за плавающей точкой

какие-либо предложения, как это сделать? благодарим заранее!

ответ

2

Printf стандарт является вашим другом:

for i in MAC1_Val: 
    print "%.6e" % i 

1.000000e+00 
-1.000000e+01 
-2.063066e+02 
2.226357e+02 
1.000000e+00 
1.000000e+01 
1.000000e+01 
+0

Или просто ''% .6e "% i'. Я не думаю, что '1' в' "% 1.6e" означает то, что вы думаете, что это значит ... –

+0

Вы правы, Марк. –

1

Используйте формат string interpolation для форматирования номера.

'%.3f' % (1.23456,) 
+0

я пытался с ним, но я не получил показатель в конце .. – sasha

+0

А потом просто записать его (плюс перевод строки), используя vanilla 'write' метода файлового объекта. –

+3

Формат 'e' предназначен для esponential, f для float, поэтому лучше использовать «% 1.6e». –

Смежные вопросы