2017-09-05 151 views
1

我想使用Python指定以下分析领域MappedField数据(Abaqus的):ABAQUS/Python的读取CSV文件

mdb.models['Model-1'].MappedField(name='AnalyticalField-1', description='', 
     regionType=POINT, partLevelData=False, localCsys=None, 
     pointDataFormat=XYZ, fieldDataType=SCALAR, xyzPointData=((0.0, 0.0, 
     0.0, 100.0), (-0.5, -0.5, 0.0, 50.0), (0.5, -0.5, 0.0, 50.0), (-0.5, 
     0.5, 0.0, 50.0), (0.5, 0.5, 0.0, 50.0))) 

如何我可以从一个CSV文件,读取xyzPointData这样做哪些看起来像

[Data] 
X , Y , Z , Temperature 

0.0, 0.0, 0.0, 100.0 
-0.5, -0.5, 0.0, 50.0 
0.5, -0.5, 0.0, 50.0 
-0.5, 0.5, 0.0, 50.0 
0.5, 0.5, 0.0, 50.0 

? (当然,我只有5点以上)也许有一个简单的方法,但我还没有找到解决方案。所以感谢您的帮助。

+0

你能告诉你卡在哪里的更多细节吗?这是一个简单的“如何读取一个CSV问题?我敢肯定,如果你搜索这个网站有一堆相关的问题。 – agentp

+0

你到目前为止尝试了什么?你是否尝试读取CSV文件,并构建一个元组为每一行? – mquantin

回答

1

agentp:不仅是如何阅读,而是将其转化为合适的形式。 mquantin:谢谢你的关键字。这是我搜索的。一个解决方案是:

path = "/home/user/test.csv" 
datalist = [] 
with open(path, "rb") as fp: 
    for row in fp.readlines(): 
     tmp = row.split(",") 
     try: 
      datalist.append((float(tmp[0]), float(tmp[1]), float(tmp[2]), float(tmp[3]))) 
     except:pass 

mdb.models['Model-1'].MappedField(name='AnalyticalField-1', description='', 
     regionType=POINT, partLevelData=False, localCsys=None, 
     pointDataFormat=XYZ, fieldDataType=SCALAR, xyzPointData=datalist)