mat*_*v27 4 python terminal file output
有时我希望我的程序在终端上写一些东西以便立即检查,并在一个文件上供以后使用,所以我写了类似的东西:
print "output"
file.write("output") #the same output as the previous line
Run Code Online (Sandbox Code Playgroud)
有可能,使用python 2.6或7,以另一种方式,也许更聪明的方式做到这一点?
msv*_*kon 14
你可以把它包装成一个函数:
>>> def fprint(output):
... print output
... with open("somefile.txt", "a") as f:
... f.write("{}\n".format(output))
Run Code Online (Sandbox Code Playgroud)
如果这是日志记录信息,则应查看日志记录模块.使用日志记录模块,您可以轻松配置和控制日志记录事件的多个目标.
记录食谱的示例:
import logging
# set up logging to file - see previous section for more details
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d %H:%M',
filename='/temp/myapp.log',
filemode='w')
# define a Handler which writes INFO messages or higher to the sys.stderr
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# set a format which is simpler for console use
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
# tell the handler to use this format
console.setFormatter(formatter)
# add the handler to the root logger
logging.getLogger('').addHandler(console)
# Now, we can log to the root logger, or any other logger. First the root...
logging.info('Jackdaws love my big sphinx of quartz.'
# Now, define a couple of other loggers which might represent areas in your
# application:
logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')
logger1.debug('Quick zephyrs blow, vexing daft Jim.') # Won't print, file only
logger1.info('How quickly daft jumping zebras vex.') # Printed and to file
logger2.warning('Jail zesty vixen who grabbed pay from quack.') # Printed and to file
logger2.error('The five boxing wizards jump quickly.') # Printed and to file.
Run Code Online (Sandbox Code Playgroud)
上面的示例将把所有具有logging.DEBUG或更高日志记录级别的消息写入调用的文件/temp/myapp.log.logging.INFO打印带有级别的消息sys.stderr.我强烈建议将此模块用于上述简单调试打印的任何日志记录.
编辑:有错误的例子!
| 归档时间: |
|
| 查看次数: |
4907 次 |
| 最近记录: |