ich habe folgendes Problem:
ich möchte bestimmte Daten aus einer Datei auslesen und diese in eine neue Datei speichern, dabei soll eine bestimmt Reihenfolge eingehalten werden und zwar wie sie in sorted_list vorhanden ist.
Hier mein (abgespeckter) Code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
sorted_list = ['18693', '18625', '18560', '18634', '18593', '18549', '18619', '18585', '18597', '18595', '18583', '18594', '18569', '18692', '18576', '18579', '18548', '18578', '18566', '18587', '18584', '18596', '18556', '18621', '18635', '18539', '18620', '18618', '18612', '18614', '18613', '18610', '18615', '18616', '18611', '18538', '18574', '18598', '18567', '18557', '18572', '18592', '18577', '18565', '18575', '18617', '18606', '18608', '18607', '18604', '18636', '18609', '18602', '18603', '18605', '18637', '18590', '18591', '18573', '18600', '18589', '18582', '18580', '18571', '18581', '18588', '18601', '18537', '18586', '18599', '18559']
with open("boundary_values_step_0.01_cycle_1.dat","r") as infile:
with open("output.dat",'w') as outfile:
nodes = []
pressure = []
xcoord = []
ycoord = []
zcoord = []
data = infile.readlines()
#print data
for entry in data:
values = entry.split()
if values[2] == "1":
for knoten in sorted_list:
if knoten == values[3]:
#print knoten
pressure_node = float(values[6]) * (-1.0)
#print pressure_node
x_coord_node = values[11]
y_coord_node = values[12]
z_coord_node = values[13]
pressure.append(pressure_node)
xcoord.append(x_coord_node)
ycoord.append(y_coord_node)
zcoord.append(z_coord_node)
outfile.write('{0:2s} {1:3f} {2:4s} {3:5s} {4:6s}\n'.format(knoten,pressure_node,x_coord_node,y_coord_node,z_coord_node))
Wenn ich das nun laufen lassen, wird die Reihenfolge nicht eingehalten. In sorted_list folgt dem u.a. dem Eintrag '18557' die '18565',
in der Datei output.dat folgt dem Eintrag '18557' die '18559',
Hat jemand eine Idee, wie ich das hinbekomme?
Gruß