如何在Abaqus/Python scipting中从CSV文件读取数据



我试图使用脚本在abaqus中生成路径,但我希望abaqus读取CSV文件并在此基础上生成路径,而不是手动将路径作为坐标输入,但我收到了以下错误:TypeError:表达式;找到"file",需要一个可识别的类型填充字符串dict。我知道脚本无法重新识别输入文件,但我不知道该如何修改它?我试图将我的CSV数据存储到Data.CSV中,当我想在脚本中读取它时,我会遇到错误,错误指向以下行:

session.Path(name='point_list', type=POINT_LIST, expression=Data)

完整的代码是:

'''
from abaqus import *
from abaqusConstants import * 
import __main__
#def Macro2():


import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
import numpy as np
import job
import math
import os
import shutil
import csv
import sys
pressure_range={170e-3,70e-3,20e-3,120e-3}
void_range={2,4,6,8,10,12,14,16,17}
Thickness_range={8,12,16,20}

i=0
for void in void_range:
for Thickness in Thickness_range: 
for Pressure_mag in pressure_range:
pressure_name=Pressure_mag*1000
pressure_name= int(pressure_name)
void_name=int(void)
Thickness_name=int(Thickness)
i=i+1
J_name='Job-'+str(i)+'Void_size'+str(void_name)+'mm'+'Thickness'+str(Thickness_name)+'mm'+str(pressure_name)+'Kpa_ogd'

ParentDir='W:/Saeed M/Abaqus results from NESI/1D_Model_3/Ver5/Model_3_ver5'+'/'
JobDir=J_name+'/'+J_name+'.odb'
JobDirectory=ParentDir+JobDir
CSV_name=J_name+'.csv'
CSVreadpath='W:/Saeed M/Abaqus results from NESI/1D_Model_3/Ver5/Model_3_ver5'
#file=open(CSVreadpath,"r")
with open ('Data.csv','r') as csv_file:
Data=csv.reader (csv_file)




o1 = session.openOdb(
name=JobDirectory)
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
session.Path(name='point_list', type=POINT_LIST, expression=Data)
'''

正如@Anbu所提到的,csv.reader不会返回您所期望的内容。它返回一个行读取器迭代器。即使只有一行,也必须使用迭代器。

如果你只想读第一行(正好有3个值(,你可以做一些类似的事情:

with open('Data.csv', 'r') as csv_file:
data = tuple(float(x) for x in next(csv.reader(csv_file)))

在这个代码段中,next返回csv.reader的第一次迭代的值,Abaqus需要转换为Tuple[float]

最新更新