介绍
在立管线型初步设计结束后, 需要统计所有工况下的弯矩、剪力的极大值情况以及此情况对应的 x 、y 方向分量, 才能进行下一步极值工况分析。 但在使用 Orcaflex 批处理提取结果时, 只能提取弯矩、剪力及对应的 x 、y 方向分量在时域上的极值(range graph Max), 而直接输出时域结果则数据众多, 手动提取极其费力, 因此写了个 Python 脚本自动找到最大的弯矩并把对应分量提取出来。
代码实现
模块列表
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
数据格式
表格的列代表不同时刻下力的数值,以弯矩为例,需要将弯矩的一列的所有数据读完,共16002个数据,然后返回 Max Bending Moment 所对应的行的数据,即为弯矩最大时刻立管接头处的受力状态。
基本语法
xlrd
1、导入模块
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook(‘excel.xls’)
3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取
② table = data.sheet_by_index(0) #通过索引顺序获取
③ table = data.sheet_by_name(u’Sheet1’)#通过名称获取
4、获取整行和整列的值(返回数组)
table.row_values(i)
table.col_values(i)
5、获取行数和列数
table.nrows
table.ncols
6、获取单元格
table.cell(0,0).value
table.cell(2,3).value
xlwd
写excel表要用到xlwt模块,官网下载(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:
1、导入模块
import xlwt2、创建workbook(其实就是excel,后来保存一下就行)
workbook = xlwt.Workbook(encoding = ‘ascii’)3、创建表
worksheet = workbook.add_sheet(‘My Worksheet’)4、往单元格内写入内容
worksheet.write(0, 0, label = ‘Row 0, Column 0 Value’)5、保存
workbook.save(‘Excel_Workbook.xls’)
代码实现
|
|
不足
- 本来想写个函数或者类,然后把数据读取后调用,但 data 是模块里的对象,好像不能直接作为变量输入函数。后来只好写了个嵌套循环。
- 程序比较简单,而且并不是完全自动化操作,需要手动设置一些数据。