无法将标准输出复制到python中的文件

阿育

我正在尝试将控制台中打印的任何内容记录到文件中(它应该同时在控制台和文件中打印)。我正在使用命令,即将输出记录到文件中,但是我面临两个问题:1。不在控制台上打印输出,而是直接打印到文件。2.如果我正在使用sleep命令,则该命令将无法正常工作。任何人都可以通过python代码帮助我。这是我的代码

import  time    
sys.stdout = open("for_posterity.txt", "a")
def main():
    while True:
       fun1()
       fun2()
def fun1():
    time.sleep(1)
    print("inside fun 1")
def fun2():
    time.sleep(1)
    print("inside fun 2")
if __name__ == '__main__':
    main()
肯尼·奥斯特罗姆(Kenny Ostrom)

更改sys.stdout时,您失去了写入控制台的功能。此代码完全按照您的指示执行。如果我查看for_posterity.txt,它说

内部乐趣1
内部乐趣2
内部乐趣1
内部乐趣2
...

如果您想同时使用这两种功能的日志记录功能,则实际上必须同时进行。

def output(message):
    with open("for_posterity.txt", "a") as logfile:
        print (message)
        logfile.write(message + "\n")

def fun1():
    time.sleep(1)
    output("inside fun 1")

def fun2():
    time.sleep(1)
    output("inside fun 2")

但是,当您变得更高级时,将需要使用日志记录模块,可以将其配置为写入所需的任意数量的地方,它可以根据发生的情况进行决定。

https://docs.python.org/3/library/logging.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章