&引用;脚本命令";以及在python中登录

&引用;脚本命令";以及在python中登录,python,linux,command,Python,Linux,Command,我有一个python应用程序,在屏幕上有很多输出,可以用于调试。在所有的日志记录技术中,“script”命令对我来说效果很好,因为我可以在记录输出的同时在屏幕上看到输出。我想在python应用程序的开始部分包括这一点,以便自动运行并记录所有内容,但当我这样做时,python程序不会运行。只要我在终端键入exit(停止脚本记录),应用程序就开始工作。我使用的命令是: command="script /tmp/appdebug/debug.txt" os.system(command) 我也尝试过

我有一个python应用程序,在屏幕上有很多输出,可以用于调试。在所有的日志记录技术中,“script”命令对我来说效果很好,因为我可以在记录输出的同时在屏幕上看到输出。我想在python应用程序的开始部分包括这一点,以便自动运行并记录所有内容,但当我这样做时,python程序不会运行。只要我在终端键入exit(停止脚本记录),应用程序就开始工作。我使用的命令是:

command="script /tmp/appdebug/debug.txt"
os.system(command)
我也尝试过script-q,但同样的问题也存在。非常感谢您的帮助


干杯

好吧,我确实为所有感兴趣的人找到了答案:

我将保留这个问题,因为其他人可能有同样的问题,找到这些答案并不容易:)


干杯

尝试使用
子流程
,如下所示:

from subprocess import Popen, PIPE

p = Popen(['script', '/tmp/appdebug/debug.txt'], stderr=PIPE, stdout=PIPE)
stdout, stderr = p.communicate()
script
是交互会话的包装器。即使它在外壳中启动后很快终止,情况并非如此;相反,它会启动一个新的shell,您可以在其中进行交互,以便将所有内容都记录到一个文件中

这对你意味着什么

您使用
script
的方法无法工作。您可以使用
os.system
启动
script
,它将在执行下一条Python语句之前等待
script
终止<代码>脚本的工作只会在它终止之前发生(即在Python程序无趣的等待期间)

我建议改用
script-c yourprog.py yourprog.log
。这将执行并包装
yourprog.py
,会话将存储在
yourprog.log