使用 Abaqus nogui python 界面打印到终端
Printing to terminal using Abaqus nogui python interface
当 运行 abaqus nogui python 脚本时,我想将脚本的状态输出到终端。但是当我这样做时,例如:
print("Opening ODB...")
print("Plotting images...")
我也试过:
print "Opening ODB..."
print "Plotting images..."
和
sys.stdout.write("Opening ODB...")
sys.stderr.write("Plotting images...")
没有任何内容输出到终端。尽管如此,我的代码运行良好,并完成了它应该做的所有事情。
有人知道如何解决这个问题吗?
Abaqus 自动将标准输出重新定义为它自己的自定义对象。准确地说,标准输出被设置为 abaqus.AbaqusStdout
的一个实例。如果您要将 str(sys.stdout)
写入文件,这就是您将得到的结果。
然而,Python 的标准输出的原始定义存储在 sys.__stdout__
中。您可以使用它再次重新定义标准输出或直接使用它写入它。
因为 Abaqus 安装使用 Python 早于 2.7,你可以写
import sys
print >> sys.__stdout__, 'Opening ODB'
为了让它更简洁,只需创建一个函数,例如log
,它会为你做脏活,然后只写 log('some message')
。
一旦您了解了标准输出的定义,您还可以使用其他方式进行日志记录,但这取决于您自己探索。
当 运行 abaqus nogui python 脚本时,我想将脚本的状态输出到终端。但是当我这样做时,例如:
print("Opening ODB...")
print("Plotting images...")
我也试过:
print "Opening ODB..."
print "Plotting images..."
和
sys.stdout.write("Opening ODB...")
sys.stderr.write("Plotting images...")
没有任何内容输出到终端。尽管如此,我的代码运行良好,并完成了它应该做的所有事情。
有人知道如何解决这个问题吗?
Abaqus 自动将标准输出重新定义为它自己的自定义对象。准确地说,标准输出被设置为 abaqus.AbaqusStdout
的一个实例。如果您要将 str(sys.stdout)
写入文件,这就是您将得到的结果。
然而,Python 的标准输出的原始定义存储在 sys.__stdout__
中。您可以使用它再次重新定义标准输出或直接使用它写入它。
因为 Abaqus 安装使用 Python 早于 2.7,你可以写
import sys
print >> sys.__stdout__, 'Opening ODB'
为了让它更简洁,只需创建一个函数,例如log
,它会为你做脏活,然后只写 log('some message')
。
一旦您了解了标准输出的定义,您还可以使用其他方式进行日志记录,但这取决于您自己探索。