【发布时间】:2014-03-26 22:14:11
【问题描述】:
除了python之外,这里似乎有所有语言的问题/答案(至少我还没有找到)
从Redirect stdout to a file in Python?这个问题我了解到,为了将屏幕上的所有输出重定向到一个文件,我只需要使用:
import sys
some_list = ['elem1', 'elem2']
for elem in some_list:
sys.stdout = open(elem + '.log', 'w')
# Do lots of stuff that print messages.
print 'lots of stuff for', elem
print 'Code finished'
这会将所有输出存储到elemx.log 文件:
elem1.log
lots of stuff for elem1
elem2.log
lots of stuff for elem2
Code finished
我对这种方法有两个问题:
1- 如何使最后一行打印的行(即:Code finished)不存储在为最后一个elem 创建的文件中?
2- 我怎样才能让存储的输出也显示在屏幕上?
【问题讨论】:
-
有什么原因不能写入文件而不是重定向到标准输出?
-
是的,我的真实代码非常大,有很多函数可以将各种内容打印到屏幕上。对我来说,截取消息到屏幕上比将它们一一写入文件要容易得多。
-
这可以通过日志模块来完成。看到这个问题:stackoverflow.com/questions/18058817/…
-
也许这个其他话题对你有帮助:stackoverflow.com/questions/6796492/…