运行 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/