我在Python文件中有以下参数,用于向Abaqus发送与边界条件有关的命令:
u1=0.0,
u2=0.0,
u3=0.0,
ur1=UNSET,
ur2=0.0,
ur3=UNSET
我想将这些值放在列表中,并将该列表打印到.txt文件中。我想我应该将所有内容转换为字符串:
List = [str(u1), str(u2), str(u3), str(ur1), str(ur2), str(ur3)]
只有列表不包含“UNSET”时才有效,这是Abaqus使用的命令,既不是int也不是str。任何想法如何处理?非常感谢!
答案 0 :(得分:0)
UNSET
是Abaqus / cae定义的符号常量。它有一个成员name
,它返回字符串表示,所以你可能会这样做:
def tostring(v):
try:
return(v.name)
except:
return(str(v))
然后做例如
bc= [0.,1,UNSET]
print "u1=%s u2=%s u3=%s\n"%tuple([tostring(b) for b in bc])
U1 = 0。 u2 = 1 u3 = UNSET
编辑比这更简单。经过艰苦的处理后,我意识到符号常量是通过字符串转换正确处理的,所以你可以这样做:
print "u1=%s u2=%s u3=%s\n"%tuple(['%s'%b for b in bc])