通过Python保存ODB文件:错误尝试截断只读表

时间:2018-05-04 12:40:17

标签: python-2.7 abaqus

我想读取ODB文件,然后添加一个字段,并保存生成的ODB文件。 电极很容易(如下所示)。 但我收到错误消息: OdbError:数据库保存失败。 **错误尝试截断只读表。

问题可能在于ODB文件,而不是代码本身。

有谁知道那里有什么问题?

代码是:

from odbAccess import *
from abaqusConstants import *
from odbMaterial import *
from odbSection import *
from numpy import fabs as fabs
import numpy as np
import sys
import math
import os
import datetime
from types import IntType
print('       Reading ODB    ' ) 
odb = openOdb(path='iog.odb') 
odb.save()
odb.close()

2 个答案:

答案 0 :(得分:0)

如果您使用odbAccess.openOdb方法,则错误" OdbError:数据库保存失败。 ***错误:尝试截断只读表"只有在使用可选参数readOnly=True打开Odb时才会出现。根据我的经验并根据文档,此方法的默认值为readOnly=False,这意味着您应该能够读写。但是,您可以尝试通过添加可选参数使其明确,例如:

import odbAccess
odb = odbAccess.openOdb(path="Job-1.odb", readOnly=False)

如果仍然失败,我怀疑文件权限已被更改。例如,在Windows中,您可以右键单击.odb文件,选择"属性",然后查看"只读"属性已被检查。

答案 1 :(得分:0)

如果您在CAE中打开了与readonly = true相同的文件.odb(选中了复选框),则无论您如何在代码中定义readOnly = false,然后一次又一次地重新加载odb,错误仍然会出现,即使您使用命令行而不是运行脚本。

这可以通过以下方法解决:在CAE或GUI中关闭相同的命名文件,或者使用readOnly = false重新加载该文件,然后使用readonly = false运行代码(未选中该框)。