Для создания Tecplot файла я использую:Написать Python отформатированного генератора
import numpy as np
x, y = np.genfromtxt('./files.dat', unpack=True)
nb_value = x.size
x_splitted = np.split(x, nb_value // 1000 + 1)
y_splitted = np.split(y, nb_value // 1000 + 1)
with open('./test.dat', 'w') as f:
f.write('TITLE = \" YOUPI \" \n')
f.write('VARIABLES = \"x\" \"Y\" \n')
f.write('ZONE T = \"zone1 \" , I=' + str(nb_value) + ', F=BLOCK \n')
for idx in range(len(x_splitted)):
string_list = ["%.7E" % val for val in x_splitted[idx]]
f.write('\t'.join(string_list)+'\n')
for idx in range(len(y_splitted)):
string_list = ["%.7E" % val for val in y_splitted[idx]]
f.write('\t'.join(string_list)+'\n')
Вот пример file.dat
:
-6.491083147394967334e-02 6.917197804459292456e+02
-6.489978349202699115e-02 6.871829941905543819e+02
-6.481115367048655151e-02 6.707292800160890920e+02
-6.479991205404790622e-02 6.756112033303363660e+02
-6.471117816968344205e-02 7.666798999627604871e+02
-6.469995628177811764e-02 7.819675271405360490e+02
Этот код работает, но я видел, что я должен используйте .format()
вместо %
. Это работает: string_list = ["{}".format(list(val for val in y_splitted[idx]))]
, но не будет работать с Tecplot, потому что нам нужно 7E
.
Если я попробую: string_list = ["{.7E}".format(list(val for val in y_splitted[idx]))]
, он вообще не работает. Я получил: AttributeError: 'list' object has no attribute '7E'
Что было бы лучшим способом сделать то, что я пытаюсь сделать?
@freakish: выглядит, как вы поняли, что '% .7E' делает в операции форматирования строки. –