
文章插圖
這次推送聚焦于解決采用Python向Abaqus里導(dǎo)入txt、dat數(shù)據(jù)的問題(dat文件只需要將txt文件的后綴名改為dat就可以生成dat文件),Abaqus基于Python讀入txt、dat數(shù)據(jù)主要有read()、readlines()、readlines()、numpy.loadtxt()函數(shù),導(dǎo)入的txt文件放在工作目錄temp中 。
1. read() 函數(shù)
可以一次性讀取txt文件中的內(nèi)容,并以字符串的結(jié)果返回來,如下列代碼所示:
with open(“xyplot.dat”, “r”) as f: #打開文件
data = https://www.520longzhigu.com/shenghuo/f.read() #讀取文件
print(data)
其中,
- r是讀取人工書寫的數(shù)據(jù),書寫的時候是什么樣子,讀出來就是什么樣 。
- rb是讀取二進(jìn)制文件,非人工書寫的數(shù)據(jù),如.jpeg等這些 。
圖1 read()讀取txt、dat數(shù)據(jù)到Abaqus
需要注意的是,以上data數(shù)據(jù)類型都是為字符,如下圖所示 。調(diào)用data[0]為字符,因此data[0][0]也為字符,以及后續(xù)的data[20][0],data[60][0]等也都為字符 。
2. readline()函數(shù)
readline()函數(shù)只讀取txt、dat文本第一行的內(nèi)容,并以字符串的形式返回結(jié)果,其代碼如下所示
with open(“xyplot.dat”, “r”) as f: # 打開文件
data = https://www.520longzhigu.com/shenghuo/f.readline() # 讀取文件
print(data)
將該命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)運行上述代碼后的顯示結(jié)果為圖2,很明顯只讀進(jìn)去了第一行的內(nèi)容 。
圖2 readline()讀入txt、dat文件到Abaqus
3. readlines()
readlines函數(shù)能讀取txt、dat文本的所有內(nèi)容,以數(shù)列的格式返回結(jié)果,并且配合for in使用,其代碼如下所示:
with open(“xyplot.dat”, “r”) as f:
for line in f.readlines():
line = line.strip(‘n’) #去掉列表中每一個元素的換行符
print(line)
將該命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)運行上述代碼后的顯示結(jié)果為圖3 。讀取data[0]、data[1]、data[1][1]、data[1][0]、data[1][2]、data[1][4]、data[1][0:4]的結(jié)果見圖3,大家可以看到其中的規(guī)律,特別是上述讀取的都是字符,如果想要得到數(shù)據(jù)類型,特別是有利于后面的循環(huán)讀取,需要將字符類型轉(zhuǎn)化為數(shù)據(jù)類型,這里采用float(data[1][0])將字符轉(zhuǎn)化為數(shù)據(jù)類型 。
圖3 readlines()讀入txt、dat文件到Abaqus
讀寫txt文件時需要選擇r、w、rb、wb等的模式,其釋義如圖4所示:
圖4 Python讀寫txt、dat數(shù)據(jù)到Abaqus的模式解釋
4.numpy.loadtxt()
Abaqus里已經(jīng)自帶安裝了numpy,無需要像python需要額外安裝numpy 。
import numpy as np
b=np.loadtxt(‘coordinates.txt’,delimiter = ‘,’,dtype=np.float32)
print(b)
- 第一行代碼主要為將numpy簡化等效為np,為了后續(xù)方便,比如np.loadtxt可直接等效為numpy.loadtxt,但長度是一樣的 。
- 第二行代碼讀入coordinates.txt(圖5),delimiter指定讀取文件中數(shù)據(jù)的分割符,在這里為逗號,;而后面dtype為指定讀取后數(shù)據(jù)的數(shù)據(jù)類型為float32類型 。需獲取該txt文件,可在公眾號里回復(fù):coordinates.txt
- 第三行代碼在Abaqus里顯示b的內(nèi)容如圖6所示,導(dǎo)入進(jìn)去的b為一個array,其中忽略了逗號 。在Abaqus里進(jìn)行調(diào)用b的結(jié)果如圖7所示 。注意到,b[0]為array中的第一行,b[1]為array中的第二行,b[0][0]為array中的第一行中的第一個元素,b[0][1]為array中的第一行中的第2個元素,b[1][0]為array中的第2行中的第一個元素,b[1][1]為array中的第2行中的第2個元素
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 在自己電腦設(shè)置防火墻教程 如何給自己的電腦設(shè)置防火墻
- 免費下載安裝最新版 手機頻率發(fā)生器
- ??低暠O(jiān)控安裝方法 海康威視視頻監(jiān)控
- 阿里云服務(wù)器租用費用 阿里云服務(wù)器使用教程
- kali linux全部功能教程 kali滲透測試技術(shù)實戰(zhàn)
- vmware服務(wù)器版 vmware安裝安卓系統(tǒng)
- 初次使用蘋果ipad教程 ipad新手使用指南
- 手把手教程更換電池詳細(xì) iphone6p換電池教程
- excel配置進(jìn)度解決 excel打開配置進(jìn)度
- 3dmax軟件安裝教程 3dmax安裝包怎么安裝
