3

运行 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...")

没有任何东西输出到终端。尽管如此,我的代码运行良好并完成了它应该做的一切。

有谁知道如何解决这个问题?

4

1 回答 1

7

Abaqus 自动将标准输出重新定义为它自己的自定义对象。准确地说,标准输出设置为abaqus.AbaqusStdout. 例如,如果您要写入str(sys.stdout)文件,就会得到这样的结果。

但是,Python 标准输出的原始定义存储在sys.__stdout__. 您可以使用它再次重新定义标准输出或直接使用它来写入它。

由于 Abaqus 安装使用的 Python 版本早于 2.7,因此您可以编写

import sys

print >> sys.__stdout__, 'Opening ODB'

为了使它更干净,只需创建一个函数,例如log,它将为您完成肮脏的工作,然后只编写log('some message')

一旦您知道标准输出的定义,您还可以使用其他方法进行日志记录,但这取决于您自己的探索。

于 2016-04-12T08:05:29.007 回答