Seite 1 von 1

Ergenisse 2 for loops kombinieren

Verfasst: Mittwoch 15. Oktober 2014, 16:17
von bjorn_kramp
Hallo

ich möchte die Ergebnisse von 2 For loops kombinieren. Print data und print data2 sehen unabhängig von einander gut aus. Aber wenn ich beide kombinieren möchte nimt er nur das letzte Ergebnis von data ist für alle.

Code: Alles auswählen

import odbAccess
odb = session.openOdb('j00_03.odb')
lastFrame = odb.steps['Step-1'].frames[-1]
firstFrame = odb.steps['Step-1'].frames[0]
displacement = lastFrame.fieldOutputs['U']
coord = firstFrame.fieldOutputs['COORD']
Pipenode = odb.rootAssembly.instances['PART-1-1'].nodeSets['N_BAERING']
PipenodeDisp = displacement.getSubset(region=Pipenode)
PipenodeCoor = coord.getSubset(region=Pipenode)
myoutfile = open('tryout.txt','w+')
myoutfile.write('Node')
myoutfile.write('	x disp')
myoutfile.write('	y disp')
myoutfile.write('	z disp\n')
for v in PipenodeDisp.values:
 data = v.data[0],v.data[1],v.data[2]
 print data
for v in PipenodeCoor.values:
 data2 = v.nodeLabel,v.data[0],v.data[1],v.data[2]
 print data2 + data
 myoutfile.write (str(data2)+ ',' +str(data)+ '\n')
myoutfile.close()
odb.close() 
kann jemand mir ein Tip geben?

Re: Ergenisse 2 for loops kombinieren

Verfasst: Mittwoch 15. Oktober 2014, 16:28
von BlackJack
@bjorn_kramp: Der Tipp wäre `itertools.izip()`.

Ein Blick in den Style Guide for Python Code könnte sich lohnen.

Der Dateimodus 'w+' ist hier falsch, das sollte nur 'w' sein.

Die Zeichenkettendarstellung von Listen oder Tupeln in eine Datei zu schreiben ist selten eine gute Idee.