2017-09-05 219 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)