Python登录显示问题

时间:2012-08-21 02:09:54

标签: python logging scipy io-redirection

我正在尝试记录由包含Scipy优化例程的脚本生成的终端显示。我尝试过三种不同的方法,结果令人失望。

open()和cmd-prompt重定向(“>”)没有记录警告,也没有记录我想跟踪的每次迭代信息;它只记录了参数解决方案。

logging.basicConfig()生成了一个空白文件。

如果可能,我希望能够记录脚本文件的确切终端显示。我已经开始考虑使用日志记录模块了,但我认为这是一个非常基本的任务(我来自Matlab背景)似乎相当复杂。

环境:

。 Python 2.7.3

。操作系统:Windows Vista和XP

2 个答案:

答案 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的文件中。