2016-07-20 4 views
0

작성된 코드가 python-TypeError : data; 찾을 문자열, 기대 튜플

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

와이었다 ABAQUS 스크립트의 다른 단계에서 호출 할 트링 때

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

의 오류 형식 오류를주는 : 데이터를; 튜플을 찾을 문자열을 찾았습니다

+0

, 제대로 읽을 수 없습니다. 'f.read'는 전체 파일을 읽습니다. 다음'readline'은 항상 파일이나 에러의 끝을 반환 할 것이므로'values'는 여러분이 생각하는 데이터를 가지고 있지 않습니다. – agentp

답변

1

SmoothStepAmplitude으로 데이터를 전달하려면 파일에서 읽은 데이터를 전달하거나 다른 방법으로 가져와야합니다. 파일의 이름을 정의하고 Abaqus가 읽어 줄 수는 없습니다.

설명서 (Abaqus Scripting Reference, 3.10.1)를 보면 data이 부동 소수점 쌍이어야한다는 것을 알 수 있습니다.

수동으로 데이터를 정의하면, 뭔가 같은 것 : 실제 질문을 제외하고

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

괜찮아요,하지만 우리는 왜 수동으로 먹이를주고 싶지 않습니다. 왜 우리가 파이썬에서 루프를 만들었는지, 그리고 프로그램의 출력은 data_x.txt 형식으로 저장되어 있습니다. 그리고 이번에는이 때 보인 오류와 같이 abaqus 스크립트에 피드를 넣으려고합니다. 문자열의 용어에서 발견되었지만 tuple.so를 예상 할 때이 점에 대한 해결책이 있습니다. –

+1

@ManoharReddy 정확히 말하자면,'data ='* data * ('values'에 할당하려는 것으로 보입니다)를 주어야한다는 것입니다. 파일의 이름을 지정하지 마십시오. – agentp