在python中将控制台信息捕获到文件中

在python中将控制台信息捕获到文件中,python,stdout,Python,Stdout,我想将控制台中捕获的所有信息捕获到一个文件中。而且不仅仅是console print()函数。堆栈上有关于如何将print()重定向到文件的代码溢出,但如果发生错误则没有。比如,如果你有一个程序,它会给出一个如下所示的错误。它会给你一个机会 indexError: List index out of rang 我想将所有控制台信息捕获到一个文件中,而不在任何地方写入try和exception 我的总体任务是使用pyInstaller创建一个带有日志文件的程序,并在日志中捕获控制台,以了解程序

我想将控制台中捕获的所有信息捕获到一个文件中。而且不仅仅是console print()函数。堆栈上有关于如何将
print()
重定向到文件的代码溢出,但如果发生错误则没有。比如,如果你有一个程序,它会给出一个如下所示的错误。它会给你一个机会

indexError: List index out of rang 
我想将所有控制台信息捕获到一个文件中,而不在任何地方写入try和exception

我的总体任务是使用pyInstaller创建一个带有日志文件的程序,并在日志中捕获控制台,以了解程序在哪里中断

list=[“你好”,“贝”]
计数器=0
当计数器<100时:
打印(列表[计数器])
计数器=计数器+1
#控制台打印出的内容。
#打印(列表[计数器])
#索引器:列表索引超出范围

您可能应该使用日志模块来完成此任务。但是,如果仍然希望将所有控制台输出重定向到文件,那么可以将stdout和stderr的文件描述符重定向到两个不同的文件。因此,调用python脚本的控制台命令如下所示

python myscript.py 1>C:\Python27\out_log.log 2>C:\Python27\err_log.log

执行后,out_log.log将有“hello”和“Bey”,而异常将重定向到err_log.log文件。在这种情况下,控制台上不会打印任何内容。

您可能应该使用日志模块执行此任务。但是,如果仍然希望将所有控制台输出重定向到文件,那么可以将stdout和stderr的文件描述符重定向到两个不同的文件。因此,调用python脚本的控制台命令如下所示

python myscript.py 1>C:\Python27\out_log.log 2>C:\Python27\err_log.log
执行后,out_log.log将有“hello”和“Bey”,而异常将重定向到err_log.log文件。在这种情况下,控制台上不会打印任何内容。

pip安装日志记录
他是你的朋友 pip安装日志记录
他是你的朋友

可能尝试
stderr
尝试:
pythonyourscript.py>out.txt 2>errout.txt
(2>是重定向stderr),但我将在哪里键入此命令。运行代码时,在我的cod或cmd中
pythonyouscript.py |&tee output.txt
,如果您在windows上,您可能可以在cmd中这样做
powershell“python yourscript.py |&tee output.txt
@FelipeSulser当我使用pyinstaller创建我的应用程序时,我将如何在我的代码中添加这一信息呢?可以尝试
stderr
try:
python yourscript.py>out.txt>errout.txt
(2>是重定向stderr),但我将在哪里键入这一信息呢?”。运行代码时,在我的cod或cmd中
pythonyouscript.py |&tee output.txt
,如果您在windows上,您可能可以在cmd中这样做
powershell“python yourscript.py |&tee output.txt
@FelipeSulser当我使用pyinstaller创建我的应用程序时,我将如何在我的代码中添加此项错误日志。”。但是,当我使用pyInstaller创建应用程序时,我将如何在代码中实现它?当我使用pyInstaller创建应用程序时,我将如何在代码中添加它?您将包含一个批处理文件,该批处理文件具有
myscript.exe 1>out.log 2>err.log
,并告诉您的用户启动批处理文件,而不是直接启动exe。@JustinEzequiel如果我对它生成日志的小应用程序。但只要我对我的主要大应用程序这么做。它不会捕获错误。只有在视图随机单击后,它才会生成一系列错误。这就像在打印到文件之前等待一系列错误一样。@BernardsPies,这称为缓冲。错误日志工作正常。但是,当我使用pyInstaller创建应用程序时,我将如何在代码中实现它?当我使用pyInstaller创建应用程序时,我将如何在代码中添加它?您将包含一个批处理文件,该批处理文件具有
myscript.exe 1>out.log 2>err.log
,并告诉您的用户启动批处理文件,而不是直接启动exe。@JustinEzequiel如果我对它生成日志的小应用程序。但只要我对我的主要大应用程序这么做。它不会捕获错误。只有在视图随机单击后,它才会生成一系列错误。这就像在打印到文件之前等待一系列错误一样。@BernardtSpies,这叫做缓冲。