繁体   English   中英

“脚本命令”并登录python

[英]“script command” and logging in python

我有一个python应用,该应用在屏幕上有很多输出,可用于调试。 在所有日志记录技术中,“脚本”命令对我来说都很有效,因为我可以在屏幕上看到输出以及对其进行日志记录。 我想在我的python应用程序的开头包含该代码,以便在运行时自动运行并记录所有内容,但是python程序无法运行。 一旦我在终端上输入exit(这将停止脚本记录),应用程序就会开始工作。 我正在使用的命令是:

command="script /tmp/appdebug/debug.txt"
os.system(command)

我也尝试了脚本-q,但是存在相同的问题。 将不胜感激。

干杯

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

https://stackoverflow.com/questions/15507602/logging-all-bash-in-and-out-with-script-command命令

Bash脚本:使用bash脚本中的“脚本”命令来记录会话

我会保留这个问题,因为其他人可能也有同样的问题,要找到这些答案并非易事:)

干杯

尝试使用subprocess ,如下所示:

from subprocess import Popen, PIPE

p = Popen(['script', '/tmp/appdebug/debug.txt'], stderr=PIPE, stdout=PIPE)
stdout, stderr = p.communicate()

script是交互会话的包装 即使它在shell中启动后似乎很快终止,也并非如此。 相反,它将启动一个新的Shell 您可以在其中进行交互,以便将所有内容都记录到文件中。

这对您意味着什么?

您使用script方法行不通。 使用os.system启动script ,它将在下一个Python语句执行之前等待script终止。 script的工作只会在终止之前发生(即,在Python程序的无趣的等待期间)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM