2016-07-20 20 views
0

der geschriebenen CodePython-TypeError: Daten; gefunden string, erwartet Tupel

war
f = open('data_x.txt', 'r') 
values=f.read() 
values=f.readline() 

und wenn Tring in anderen Schritt in ABAQUS Skript

mdb.models['Model-1'].SmoothStepAmplitude(data=('data_x'), name='Amp-x', timeSpan=STEP) 

seiner geben einen Fehler Typeerror zu nennen: Daten; gefundene Zeichenfolge, Tupel erwartet

+0

abgesehen von Ihrer eigentlichen Frage, kann man nicht richtig lesen. 'f.read' liest die gesamte Datei. Die folgende 'readline' gibt dann immer ein Dateiende oder einen Fehler zurück, so dass' values' nicht die Daten enthält, die Sie denken. – agentp

Antwort

1

Wenn Sie Daten an SmoothStepAmplitude übergeben möchten, müssen Sie die Daten, die Sie aus einer Datei lesen oder in einer anderen Weise erhalten. Es ist nicht möglich, den Namen einer Datei zu definieren und Abaqus zu veranlassen, sie für Sie zu lesen.

Wenn Sie sich die Dokumentation (Abaqus Scripting Reference, 3.10.1) ansehen, werden Sie sehen, dass data eine Folge von Float-Paaren sein muss.

Wenn Sie die Daten manuell definiert, wäre es so etwas wie:

my_data = [(10, 1), (20, 2)] 
mdb.models['Model-1'].SmoothStepAmplitude(data=my_data, name='Amp-x', timeSpan=STEP) 
+0

das ist in Ordnung, aber wir wollen es nicht manuell füttern, das ist, warum wir eine Schleife in Python erstellt haben und die Ausgabe von Programm in Data_x.txt Formular gespeichert ist und versuchen, es in abaqus Skript zu füttern, so weit Fehler dieses Mal seine Angabe Daten gesehen Wird in Strings gefunden, erwartet aber tuple.so, gibt es dafür eine Lösung. –

+1

@ManoharReddy genau, der Punkt ist, müssen Sie geben, Daten = 'die * Daten * (die es scheint, dass Sie zu" Werte "zuweisen wollen), geben Sie ihm nicht den Namen der Datei. – agentp

Verwandte Themen