Sortierte Ausgabe in eine Datei
Verfasst: Mittwoch 27. März 2013, 13:41
Hallo,
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:
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ß
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ß