Я создал скрипт, который собирает огромные данные из файла .txt в массив в нужном мне формате [3: 4: n], и информация записывается следующим образом (я думаю). Файл .txt имеет следующий формат:
1.000000e-01 1.000000e-01 1.000000e-01
1.000000e-01 2.000000e-01 3.000000e-01
3.000000e-01 2.000000e-01 1.000000e-01
1.000000e-01 2.000000e-01 4.000000e-01
и повторяется в течение N раз, и я сохраняю в основном из 4 строк для линии (например, блок), потому что я работаю с файлами ASCII из частей STL.
В этом смысле у меня есть следующий код:
f = open("camaSTLfinalmente.txt","r")
b_line = 0
Coord = []
Normal = []
Vertice_coord = []
Tri = []
blook = []
for line in f:
line = line.rstrip()
if(line):
split = line.split()
for axis in range(0,3):
if(b_line == 0): #normal
Normal.append(split[axis])
else: #triangulo
Vertice_coord.append(split[axis])
if(b_line > 0):
Tri.append(Vertice_coord)
Vertice_coord = []
if(b_line == 3):
block.append(Normal)
block.append(Tri)
Coord.append(block)
block = []
Normal = []
Tri = []
b_line = 0
else:
b_line+=1
print(Coord[0]) #prints the follow line that I wrote after the code
информация хранится следующим образом: [['1.000000e-01', '1.000000e-01', '1.000000e-01'], [['1.000000e-01', '2.000000e-01', '3.000000e-01'], [' 3.000000e-01 ',' 2.000000e-01 ',' 1.000000e-01 '], [' 1.000000e-01 ',' 2.000000e-01 ',' -4.000000e-01 ']]]
Есть ли способ упростить это?
Я хотел бы воспользоваться этой возможностью, чтобы спросить: я хотел преобразовать эту информацию в числа, и в идеале было бы читать число после экспоненты (e). и измените числа соответственно, то есть 1.000000e-01 переходит в 0,1 (в порядке выполнять операции с аналогичным массивом, где я храню информацию из другого файла .txt с таким же форматом)
Спасибо за внимание,
Pedro