运行 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 安装使用的是早于 2.7 的 Python,您可以编写

import sys

print >> sys.__stdout__, 'Opening ODB'

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

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

关于python - 使用 Abaqus nogui python 接口(interface)打印到终端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36544914/

10-11 04:37