我正在尝试记录由包含Scipy优化例程的脚本生成的终端显示。我尝试过三种不同的方法,结果令人失望。
open()和cmd-prompt重定向(“>”)没有记录警告,也没有记录我想跟踪的每次迭代信息;它只记录了参数解决方案。
logging.basicConfig()生成了一个空白文件。
如果可能,我希望能够记录脚本文件的确切终端显示。我已经开始考虑使用日志记录模块了,但我认为这是一个非常基本的任务(我来自Matlab背景)似乎相当复杂。
环境:
。 Python 2.7.3
。操作系统:Windows Vista和XP
答案 0 :(得分:1)
你感兴趣的东西可能是送到stderr而不是stdout。尝试将两者重定向到文件。您可以在Python中执行此操作:
import sys
with open("log.txt", "w") as logfile:
sys.stdout, sys.stderr = logfile, logfile
# do your stuff here, e.g. import the module that you want to log
或者从命令行:
python myscript.py > log.txt 2>&1
答案 1 :(得分:0)
看看linux script命令。它可以保存终端中打印的所有内容。
user@host:~ $ script
Script started, file is typescript
user@host:~ $ ls
bin Documents Pictures Videos
user@host:~ $ exit # ^D stops script
Script done, file is typescript
然后,结果位于名为typescript
的文件中。